summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric.bail@samsung.com>2013-12-17 12:03:02 +0900
committerCedric BAIL <cedric.bail@samsung.com>2013-12-17 12:03:02 +0900
commit9600df729fc6fc555405467a41325cfd8adace3f (patch)
tree82ce12fbffc3259b52d378956afe2ad746c5d0e2
parent241f6ab26f98d37c21c7f75e1a755af78048e92c (diff)
autotools: forgotten set of macro.
-rw-r--r--.gitignore2
-rw-r--r--m4/efl.m4123
2 files changed, 124 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 97f4e33..cd67ad2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,7 +19,7 @@ po/POTFILES
19 19
20# autotools crap 20# autotools crap
21m4/*.m4 21m4/*.m4
22!m4/efl_*.m4 22!m4/efl*.m4
23Makefile 23Makefile
24Makefile.in 24Makefile.in
25aclocal.m4 25aclocal.m4
diff --git a/m4/efl.m4 b/m4/efl.m4
new file mode 100644
index 0000000..098722f
--- /dev/null
+++ b/m4/efl.m4
@@ -0,0 +1,123 @@
1dnl file to manage modules in efl
2
3dnl EFL_VERSION(major, minor, micro, release)
4dnl This setup EFL version information and should be called BEFORE AC_INIT().
5dnl
6dnl release parameter is 'dev' to use from SVN or libtool -release field.
7dnl It may be empty if not dev (svn/live build) and no -release is to be used.
8dnl
9dnl Examples:
10dnl EFL_VERSION(1, 7, 99, dev)
11dnl EFL_VERSION(1, 7, 99, ver-1234)
12dnl This will define couple of m4 symbols:
13dnl v_maj = given major number (first parameter)
14dnl v_min = given minor number (second parameter)
15dnl v_mic = given micro number (third parameter)
16dnl v_rev = if release, it's 0, otherwise it's dev_version.
17dnl v_rel = if release, it's -release followed by fourth parameter,
18dnl otherwise it's empty. (mostly for libtool)
19dnl efl_version = if release, it's major.minor.micro, otherwise it's
20dnl major.minor.micro.dev_version
21dnl dev_version = development version (svn revision).
22dnl def_build_profile = dev or release based on 'dev' release parameter.
23AC_DEFUN([EFL_VERSION],
24[dnl
25m4_define([v_maj], [$1])dnl
26m4_define([v_min], [$2])dnl
27m4_define([v_mic], [$3])dnl
28m4_define([dev_version], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n']))dnl
29m4_define([v_rev], m4_if($4, dev, [dev_version], [0]))dnl
30m4_define([v_rel], [])dnl
31m4_define([def_build_profile], m4_if($4, dev, [dev], [release]))dnl
32m4_define([efl_version], m4_if($4, dev, [v_maj.v_min.v_mic.v_rev], [v_maj.v_min.v_mic]))dnl
33m4_define([efl_version], [v_maj.v_min.v_mic])dnl
34])
35
36dnl EFL_COLOR
37dnl will check if terminal supports color and if color is wanted by user.
38dnl
39dnl Used Variables:
40dnl WANT_COLOR: if no, forces no color output.
41dnl TERM: used to check if color should be enabled.
42dnl
43dnl Defined Variables:
44dnl COLOR_YES: to be used in positive/yes conditions
45dnl COLOR_NO: to be used in negative/no conditions
46dnl COLOR_OTHER: to be used to highlight some other condition
47dnl COLOR_RESET: to reset color
48dnl want_color: yes or no
49AC_DEFUN([EFL_COLOR],
50[dnl
51case "$TERM" in
52 xterm|xterm-color|xterm-256color|Eterm|aterm|kterm|rxvt*|screen|gnome|interix)
53 want_color="${WANT_COLOR:-yes}"
54 ;;
55 *)
56 want_color="no"
57 ;;
58esac
59
60if test "${want_color}" = "yes"; then
61 if test `echo -e x` = x; then
62 echoopt=-e
63 else
64 echoopt=
65 fi
66
67 COLOR_YES=`echo $echoopt "\033@<:@1;32m"`
68 COLOR_NO=`echo $echoopt "\033@<:@1;31m"`
69 COLOR_OTHER=`echo $echoopt "\033@<:@1;36m"`
70 COLOR_RESET=`echo $echoopt "\033@<:@0m"`
71
72else
73 COLOR_YES=""
74 COLOR_NO=""
75 COLOR_OTHER=""
76 COLOR_RESET=""
77fi
78])
79
80dnl EFL_INIT()
81dnl Will AC_DEFINE() the following:
82dnl VMAJ = v_maj
83dnl VMIN = v_min
84dnl VMIC = v_mic
85dnl VREV = v_rev
86dnl Will AC_SUBST() the following:
87dnl VMAJ = v_maj
88dnl VMIN = v_min
89dnl VMIC = v_mic
90dnl EFL_LTLIBRARY_FLAGS="-no-undefined -version-info ..."
91dnl EFL_LTMODULE_FLAGS="-no-undefined -avoid-version"
92dnl Will define the following m4:
93dnl lt_cur = libtool 'current' field of libtool's -version-info
94dnl lt_rev = libtool 'revision' field of libtool's -version-info
95dnl lt_age = libtool 'age' field of libtool's -version-info
96AC_DEFUN([EFL_INIT],
97[dnl
98AC_REQUIRE([EFL_COLOR])dnl
99AC_DEFINE_UNQUOTED([VMAJ], [v_maj], [Major version])dnl
100AC_DEFINE_UNQUOTED([VMIN], [v_min], [Minor version])dnl
101AC_DEFINE_UNQUOTED([VMIC], [v_mic], [Micro version])dnl
102AC_DEFINE_UNQUOTED([VREV], [v_rev], [Revison])dnl
103VMAJ=v_maj
104VMIN=v_min
105VMIC=v_mic
106AC_SUBST([VMAJ])dnl
107AC_SUBST([VMIN])dnl
108AC_SUBST([VMIC])dnl
109dnl
110dnl TODO: warning - lt_cur:
111dnl the previous code assumed v_maj + v_min, but this will be a problem when
112dnl we bump v_maj and reset v_min. 1 + 7 == 7 + 1, so if v_maj is bumped
113dnl we multiply it by 100.
114m4_define([lt_cur], m4_if(m4_cmp(v_maj, 1), 0, m4_eval(v_maj + v_min), m4_eval(v_maj * 100 + v_min)))dnl
115m4_define([lt_rev], v_mic)dnl
116m4_define([lt_age], v_min)dnl
117dnl
118EFL_LTLIBRARY_FLAGS="-no-undefined -version-info lt_cur:lt_rev:lt_age v_rel"
119AC_SUBST(EFL_LTLIBRARY_FLAGS)dnl
120EFL_LTMODULE_FLAGS="-no-undefined -avoid-version"
121AC_SUBST([EFL_LTMODULE_FLAGS])dnl
122AC_MSG_NOTICE([Initialized AC_PACKAGE_NAME (AC_PACKAGE_VERSION) development=dev_version v_rel])
123])