Line # Revision Author
1 1 moose VERBOSE=0
2 ifopt --verbose VERBOSE=1
3 V="$(getoptval --verbose)"
4 do ifnot "${V}"=""
5 VERBOSE="${V}"
6 echo Verbose: ${VERBOSE}
7 done
8
9 verbose ${VERBOSE}
10
11 CLEAN=0
12 ifopt clean CLEAN=1
13
14
15 RELEASE=enabled
16 DEBUG=disabled
17 PROFILE=disabled
18 SHARED=disabled
19 STATIC=enabled
20 FASTBUILD=disabled
21
22 AR_OPT="rcs"
23
24 CONFIG="cbuild/config.cbd"
25 APPEND_CONFIG='appendfile ${CONFIG}'
26
27 # Library base source files #
28 LIB_SRC=
29
30 do ifopt --help
31 echo Available Flags:
32 echo " --reconfig (use this to override saved settings)"
33 echo " --platform=(unix|win32)"
34 echo " --prefix=<path>"
35 echo " --with-lib-dir=<path>"
36 echo " --with-include-dir=<path>"
37 echo " --with-bin-dir=<path>"
38 echo " --with-qt-dir=<path>"
39 echo " --with-qt-inc-dir=<path>"
40 echo " --with-qt-lib-dir=<path>"
41 echo " --with-qt-bin-dir=<path>"
42 echo ""
43 echo " --enable-<option>"
44 echo " --disable-<option>"
45 echo ""
46 echo " Options: (default)"
47 echo " release (${RELEASE})"
48 echo " debug (${DEBUG})"
49 echo " profile (${PROFILE})"
50 echo " shared (${SHARED})"
51 echo " static (${STATIC})"
52 echo " fastbuild (${FASTBUILD})"
53 exit 0
54 done
55
56 LIB_VER=1.0
57 LIBBASENAME=
58
59 QT_MAJOR=4
60 QT_MIN_MINOR=1
61
62 win32_SHARED_LDFLAGS='-shared -Wl,-add-stdcall-alias -Wl,-out-implib,${OBJ_DIR}/shared/lib${LIBBASENAME}${EXT}.a -Wl,-output-def,${OBJ_DIR}/shared/${LIBBASENAME}${EXT}.def'
63 win32_SHARED_LIBNAME='${LIBBASENAME}${EXT}.dll'
64
65 unix_SHARED_LDFLAGS='-shared -Wl,-export-dynamic -Wl,-soname,lib${LIBBASENAME}${EXT}.so -Wl,-rpath,${LIB_PREFIX} -fPIC'
66 unix_SHARED_LIBNAME='lib${LIBBASENAME}${EXT}.so'
67
68 ifopt --reconfig rm ${CONFIG}
69
70 do ifexist ${CONFIG}
71 !invoke ${CONFIG}
72 goto start_compile
73 done
74
75 do ifnexist ${CONFIG}
76 !writefile ${CONFIG} \# detected config, delete to reconfigure, or pass --reconfig to ./cbuild.c
77 ${APPEND_CONFIG} ""
78 do ifnret 0
79 echo Warning: Failed to save config (${CONFIG})
80 done
81 done
82
83 invoke cbuild/detect-install-prefix.cbd
84 invoke cbuild/detect-platform.cbd
85 invoke cbuild/detect-versions.cbd
86 invoke cbuild/detect-options.cbd
87 invoke cbuild/detect-qt.cbd
88 invoke cbuild/fastbuild.cbd
89
90 #:start_compile
91 #exit 0
92
93 echo ""
94 echo Detected Configuration:
95 echo " Platform: ${PLAT}"
96 echo " Release build: ${RELEASE}"
97 echo " Debug build: ${DEBUG}"
98 echo " Profile build: ${PROFILE}"
99 echo " Shared build: ${SHARED}"
100 echo " Static build: ${STATIC}"
101 echo " Fast Build: ${FASTBUILD}"
102 echo " Install Prefix: ${PREFIX}"
103 echo " libs: ${LIB_PREFIX}"
104 echo " includes: ${INC_PREFIX}"
105 echo " programs: ${BIN_PREFIX}"
106 echo " Qt Version: ${QT_VERSION}"
107 echo " Qt Prefix: ${QT4DIR}"
108 echo " Qt Inc Dir: ${QT4INCDIR}"
109 echo " Qt Lib Dir: ${QT4LIBDIR}"
110 echo " Qt Bin Dir: ${QT4BINDIR}"
111 echo ""
112
113 OBJ_DIR=obj/${PLAT}
114 DEP_DIR=dep/${PLAT}
115 LIB_DIR=lib/${PLAT}
116
117 ifnexist dep mkdir dep
118 ifnexist ${DEP_DIR} mkdir ${DEP_DIR}
119
120 ifnexist obj mkdir obj
121 ifnexist ${OBJ_DIR} mkdir ${OBJ_DIR}
122
123 ifnexist src mkdir src
124 ifnexist include mkdir include
125 src_paths src ../scintilla/src
126
127 ifnexist lib mkdir lib
128 ifnexist ${LIB_DIR} mkdir ${LIB_DIR}
129
130 BASE_LDFLAGS=" -Wl,-z,now "
131 BASE_CFLAGS=" -W -Wall "
132 BASE_CXXFLAGS=" -W -Wall "
133 BASE_CPPFLAGS=" -Iinclude -I../scintilla/include -I../scintilla/src -I../scintilla/qt -DQT "
134
135 DEBUG_LDFLAGS=""
136 DEBUG_CPPFLAGS=" -DDEBUG -DQT_DEBUG "
137 DEBUG_CXXFLAGS=" -ggdb3 "
138 DEBUG_CFLAGS=" -ggdb3 "
139
140 RELEASE_LDFLAGS=" -s "
141 RELEASE_CPPFLAGS=""
142 RELEASE_CXXFLAGS=" -O2 "
143 RELEASE_CFLAGS=" -O2 "
144
145 SHARED_LDFLAGS="${${PLAT}_SHARED_LDFLAGS}"
146 SHARED_CPPFLAGS=" -DPIC "
147 SHARED_CXXFLAGS=" -fPIC "
148 SHARED_CFLAGS=" -fPIC "
149 SHARED_LIB_EXT=".so"
150
151 STATIC_LDFLAGS=" -static "
152 STATIC_CPPFLAGS=""
153 STATIC_CXXFLAGS=""
154 STATIC_CFLAGS=""
155 STATIC_LIB_EXT=".a"
156
157 PROFILE_LDFLAGS=" -pg "
158 PROFILE_CPPFLAGS=""
159 PROFILE_CXXFLAGS=" -pg "
160 PROFILE_CFLAGS=" -pg "
161
162 CPPFLAGS="${BASE_CPPFLAGS}"
163 CFLAGS="${BASE_CFLAGS}"
164 CXXFLAGS="${BASE_CXXFLAGS}"
165 LDFLAGS="${BASE_LDFLAGS}"
166
167 ${FASTBUILD_COMMAND}
168 invoke cbuild/shared.cbd
169 invoke cbuild/static.cbd
170
171 ifopt clean goto clean
172 ifopt distclean goto distclean
173
174 exit 0
175
176 #:clean
177 !invoke ${CONFIG}
178 echo Cleaning...
179 echo CLEAN: ${CLEAN}
180
181 do ifplat unix
182 call find . -iname '*~' | xargs rm -f
183 done
184
185 exit 0
186
187 #:distclean
188 !invoke config.cbd
189 echo disclean
190 goto clean
191