2 # --------------- Makefile options, which doesn't depend on OS ----------------
4 # Version used for soname, should change on each API change
8 # these subdirectories from /docs are copied to docs dir
9 # ("\" CHAR IS AFTER NAME WITHOUT SPACE)
14 COMMON = $(TOPDIR)/common/gsmcomon.o \
15 $(TOPDIR)/common/gsmstate.o \
16 $(TOPDIR)/common/misc/misc.o \
17 $(TOPDIR)/common/misc/cfg.o \
18 $(TOPDIR)/common/misc/coding/coding.o \
19 $(TOPDIR)/common/misc/coding/md5.o \
20 $(TOPDIR)/common/service/sms/gsmsms.o \
21 $(TOPDIR)/common/service/sms/gsmems.o \
22 $(TOPDIR)/common/service/sms/gsmmulti.o \
23 $(TOPDIR)/common/service/gsmcal.o \
24 $(TOPDIR)/common/service/gsmwap.o \
25 $(TOPDIR)/common/service/gsmpbk.o \
26 $(TOPDIR)/common/service/gsmring.o \
27 $(TOPDIR)/common/service/gsmlogo.o \
28 $(TOPDIR)/common/service/gsmmisc.o \
29 $(TOPDIR)/common/service/gsmnet.o \
30 $(TOPDIR)/common/service/backup/gsmback.o \
31 $(TOPDIR)/common/service/backup/backldif.o \
32 $(TOPDIR)/common/service/backup/backlmb.o \
33 $(TOPDIR)/common/service/backup/backtext.o \
34 $(TOPDIR)/common/service/backup/backvcs.o \
35 $(TOPDIR)/common/service/backup/backvcf.o \
36 $(TOPDIR)/common/service/backup/backics.o \
37 $(TOPDIR)/common/device/bluetoth/bluetoth.o \
38 $(TOPDIR)/common/device/serial/ser_unx.o \
39 $(TOPDIR)/common/device/serial/ser_djg.o \
40 $(TOPDIR)/common/device/irda/irda.o \
41 $(TOPDIR)/common/device/devfunc.o \
42 $(TOPDIR)/common/protocol/at/at.o \
43 $(TOPDIR)/common/protocol/alcatel/alcabus.o \
44 $(TOPDIR)/common/protocol/nokia/mbus2.o \
45 $(TOPDIR)/common/protocol/nokia/fbus2.o \
46 $(TOPDIR)/common/protocol/nokia/phonet.o \
47 $(TOPDIR)/common/protocol/obex/obex.o \
48 $(TOPDIR)/common/protocol/symbian/mrouter.o \
49 $(TOPDIR)/common/phone/pfunc.o \
50 $(TOPDIR)/common/phone/at/atgen.o \
51 $(TOPDIR)/common/phone/at/siemens.o \
52 $(TOPDIR)/common/phone/at/sonyeric.o \
53 $(TOPDIR)/common/phone/alcatel/alcatel.o \
54 $(TOPDIR)/common/phone/nokia/dct3/n6110.o \
55 $(TOPDIR)/common/phone/nokia/dct3/n7110.o \
56 $(TOPDIR)/common/phone/nokia/dct3/n9210.o \
57 $(TOPDIR)/common/phone/nokia/dct3/dct3func.o \
58 $(TOPDIR)/common/phone/nokia/dct4/n3650.o \
59 $(TOPDIR)/common/phone/nokia/dct4/n6510.o \
60 $(TOPDIR)/common/phone/nokia/dct4/dct4func.o \
61 $(TOPDIR)/common/phone/nokia/nauto.o \
62 $(TOPDIR)/common/phone/nokia/nfunc.o \
63 $(TOPDIR)/common/phone/nokia/nfuncold.o \
64 $(TOPDIR)/common/phone/obex/obexgen.o \
65 $(TOPDIR)/common/phone/symbian/mroutgen.o
67 # files for command line gammu
68 GAMMU = $(TOPDIR)/gammu/depend/dct3.o \
69 $(TOPDIR)/gammu/depend/dct3trac/wmx.o \
70 $(TOPDIR)/gammu/depend/dct3trac/wmx-gsm.o \
71 $(TOPDIR)/gammu/depend/dct3trac/wmx-list.o \
72 $(TOPDIR)/gammu/depend/dct3trac/wmx-sim.o \
73 $(TOPDIR)/gammu/depend/dct3trac/wmx-util.o \
74 $(TOPDIR)/gammu/depend/dct4.o \
75 $(TOPDIR)/gammu/depend/dsiemens.o \
76 $(TOPDIR)/gammu/smsd/smsdcore.o \
77 $(TOPDIR)/gammu/smsd/s_files.o \
78 $(TOPDIR)/gammu/sniff.o \
79 $(TOPDIR)/gammu/gammu.o
81 LOCALE = $(TOPDIR)/common/misc/misc.o \
82 $(TOPDIR)/common/misc/cfg.o \
83 $(TOPDIR)/common/misc/coding/coding.o \
84 $(TOPDIR)/cfg/locale/locale.o
86 LOCALE2 = $(TOPDIR)/cfg/locale
88 include $(TOPDIR)/cfg/Makefile.cfg
92 # --------------------------- internal source ---------------------------------
98 $(CC) -c $(CFLAGS) -I$${curdir}/common/ $(CPPFLAGS) $(<F) -o $(@F) \
103 $(TOPDIR)/gammu/gammu: $(COMMON) $(GAMMU)
105 @$(CC) $(LDLIBS) $(COMMON) $(GAMMU) -lm -o $(TOPDIR)/gammu/gammu
107 gammu: $(TOPDIR)/gammu/gammu
109 $(TOPDIR)/common/libGammu.so.$(SONAME_MAJOR).$(SONAME_MINOR): $(COMMON)
110 @echo Linking libGammu.so.$(SONAME_MAJOR).$(SONAME_MINOR)
111 @$(CC) $(LDLIBS) -shared -Wl,-soname -Wl,libGammu.so.$(SONAME_MAJOR).$(SONAME_MINOR) -o $(TOPDIR)/common/libGammu.so.$(SONAME_MAJOR).$(SONAME_MINOR) $(COMMON)
112 @$(LN) -s libGammu.so.$(SONAME_MAJOR).$(SONAME_MINOR) $(TOPDIR)/common/libGammu.so.$(SONAME_MAJOR)
113 @$(LN) -s libGammu.so.$(SONAME_MAJOR) $(TOPDIR)/common/libGammu.so
115 $(TOPDIR)/common/libGammu.a: $(COMMON)
116 @echo Linking libGammu.a
117 @$(RM) $(TOPDIR)/common/libGammu.a
118 @$(AR) cru $(TOPDIR)/common/libGammu.a $(COMMON)
119 @$(RANLIB) $(TOPDIR)/common/libGammu.a
121 $(TOPDIR)/gammu/gammu-shared: $(COMMON) $(GAMMU) $(TOPDIR)/common/libGammu.so.$(SONAME_MAJOR).$(SONAME_MINOR)
123 @$(CC) $(LDFLAGS) $(LDLIBS) $(GAMMU) -lm -L$(TOPDIR)/common -lGammu -o $(TOPDIR)/gammu/gammu-shared
125 shared: $(TOPDIR)/common/libGammu.so.$(SONAME_MAJOR).$(SONAME_MINOR) $(TOPDIR)/common/libGammu.a $(TOPDIR)/gammu/gammu-shared
127 # Backward compatibility
131 @echo Cleaning binaries and object files
132 @$(RM) $(COMMON) $(GAMMU) core $(TOPDIR)/common/libGammu*
133 @$(RM) $(TOPDIR)/gammu/gammu $(TOPDIR)/gammu/gammu-shared tags
134 @$(RM) $(TOPDIR)/cfg/locale/locale.o $(TOPDIR)/cfg/locale/locale
135 @echo Cleaning autoconf stuff
136 @$(RM) -r $(TOPDIR)/cfg/autoconf/*.cache \
137 $(TOPDIR)/cfg/autoconf/config.log \
138 $(TOPDIR)/cfg/autoconf/config.status \
139 $(TOPDIR)/cfg/autoconf/VERSION \
140 $(TOPDIR)/cfg/autoconf/configure
141 @echo Cleaning API documentation
144 makelocale: $(LOCALE)
145 @echo Linking locale application
146 @$(CC) $(LOCALE) -lm -o $(TOPDIR)/cfg/locale/locale
147 @for xxx in $(LOCALE2); do \
152 @$(RM) $(TOPDIR)/cfg/locale/locale.o $(TOPDIR)/cfg/locale/locale
154 distclean: makelocale clean
155 @echo Setting default config
156 @chmod a+x $(TOPDIR)/docs/examples/ppp/*
157 @chmod a+x $(TOPDIR)/docs/examples/fax/*
158 @chmod a+x $(TOPDIR)/other/config/*
159 @chmod a+x $(TOPDIR)/other/smsdutil/*
160 @chmod a+x $(TOPDIR)/other/perms/perms
161 @chmod a+x $(TOPDIR)/configure
163 @echo Cleaning autoconf stuff
164 @$(RM) -r $(TOPDIR)/cfg/autoconf/*.cache \
165 $(TOPDIR)/cfg/autoconf/config.log \
166 $(TOPDIR)/cfg/autoconf/config.status \
167 $(TOPDIR)/cfg/autoconf/VERSION \
168 $(TOPDIR)/cfg/autoconf/configure
171 @echo Uninstalling Gammu
172 @$(RM) $(DESTDIR)$(INSTALL_BIN_DIR)/gammu $(DESTDIR)$(INSTALL_LIB_DIR)/libGammu.so*
173 @$(RM) $(DESTDIR)$(INSTALL_MAN_DIR)/gammu.1 $(DESTDIR)$(INSTALL_LIB_DIR)/libGammu.a
174 @$(RM) -r $(DESTDIR)$(INSTALL_DOC_DIR)/
175 @$(RM) -r $(DESTDIR)$(INSTALL_LOC_DIR)/
178 @echo Installing locales to $(DESTDIR)$(INSTALL_LOC_DIR)
179 @$(INSTALL) -m 0755 -d $(DESTDIR)$(INSTALL_LOC_DIR)
180 @$(FIND) docs/docs/locale -type f -exec $(INSTALL) -m 0644 {} $(DESTDIR)$(INSTALL_LOC_DIR) \;
183 @echo Installing docs to $(DESTDIR)$(INSTALL_DOC_DIR)
184 @$(INSTALL) -m 0755 -d $(DESTDIR)$(INSTALL_DOC_DIR)
185 @for xxx in $(DOCS); do \
186 ( cd $(TOPDIR)/docs/$$xxx; \
187 $(FIND) . -type d \! -path "*CVS*" \
188 -exec $(INSTALL) -m 0755 -d $(DESTDIR)$(INSTALL_DOC_DIR)/$$xxx/{} \; ; \
189 $(FIND) . -type f \! -path "*CVS*" \
190 -exec $(INSTALL) -m 0644 {} $(DESTDIR)$(INSTALL_DOC_DIR)/$$xxx/{} \; \
193 @$(RM) -rf $(DESTDIR)$(INSTALL_DOC_DIR)/docs/locale
194 @$(INSTALL) -m 0644 $(TOPDIR)/changelog $(DESTDIR)$(INSTALL_DOC_DIR)
195 @$(INSTALL) -m 0644 $(TOPDIR)/readme.txt $(DESTDIR)$(INSTALL_DOC_DIR)
196 @$(INSTALL) -m 0644 $(TOPDIR)/copying $(DESTDIR)$(INSTALL_DOC_DIR)
197 @echo Installing man to $(DESTDIR)$(INSTALL_MAN_DIR)
198 @$(INSTALL) -m 0755 -d $(DESTDIR)$(INSTALL_MAN_DIR)
199 @$(INSTALL) -m 0644 $(TOPDIR)/docs/docs/english/gammu.1 $(DESTDIR)$(INSTALL_MAN_DIR)
200 @$(RM) $(DESTDIR)$(INSTALL_DOC_DIR)/docs/english/gammu.1
202 install: uninstall all installdocs installlocales installonly
205 @echo Installing binaries to $(DESTDIR)$(INSTALL_BIN_DIR)
206 @$(INSTALL) -m 0755 -d $(DESTDIR)$(INSTALL_BIN_DIR)
207 @$(INSTALL) -m 0755 $(TOPDIR)/gammu/gammu $(DESTDIR)$(INSTALL_BIN_DIR)
209 installshared: installlib
210 installlib: uninstall makelib installdocs installlocales installlibonly
212 installlibonly: shared
213 @echo Installing binaries to $(DESTDIR)$(INSTALL_BIN_DIR)
214 @$(INSTALL) -m 0755 -d $(DESTDIR)$(INSTALL_BIN_DIR)
215 @$(INSTALL) -m 0755 $(TOPDIR)/gammu/gammu-shared $(DESTDIR)$(INSTALL_BIN_DIR)/gammu
217 @echo Installing shared library to $(DESTDIR)$(INSTALL_LIB_DIR)
218 @$(INSTALL) -m 0755 -d $(DESTDIR)$(INSTALL_LIB_DIR)
219 @$(INSTALL) -m 0644 $(TOPDIR)/common/libGammu.so.$(SONAME_MAJOR).$(SONAME_MINOR) $(DESTDIR)$(INSTALL_LIB_DIR)
220 @$(LN) -s libGammu.so.$(SONAME_MAJOR).$(SONAME_MINOR) $(DESTDIR)$(INSTALL_LIB_DIR)/libGammu.so.$(SONAME_MAJOR)
221 @$(LN) -s libGammu.so.$(SONAME_MAJOR) $(DESTDIR)$(INSTALL_LIB_DIR)/libGammu.so
223 @echo Installing static library to $(DESTDIR)$(INSTALL_LIB_DIR)
224 @$(INSTALL) -m 0644 $(TOPDIR)/common/libGammu.a $(DESTDIR)$(INSTALL_LIB_DIR)
226 @echo Installing include files to $(DESTDIR)$(INSTALL_H_DIR)
227 @$(INSTALL) -m 0755 -d $(DESTDIR)$(INSTALL_H_DIR)
228 @for xxx in '$(TOPDIR)/common'; do \
229 ( cd $(TOPDIR)/$$xxx; \
230 $(FIND) . -type d \! -path "*CVS*" \
231 -exec $(INSTALL) -m 0755 -d $(DESTDIR)$(INSTALL_H_DIR)/{} \; ; \
232 $(FIND) . -type f \! -path "*CVS*" -name '*.h' \
233 -exec $(INSTALL) -m 0644 {} $(DESTDIR)$(INSTALL_H_DIR)/{} \; \
236 @$(INSTALL) -m 0644 cfg/config.h $(DESTDIR)$(INSTALL_H_DIR)/config.h
238 @echo Installing pkgconfig file
239 @$(INSTALL) -m 0755 -d $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
240 @$(INSTALL) -m 0644 cfg/pkgconfig/gammu.pc $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
243 @if test -z "$(DOXYGEN)" ; then \
244 echo "You need doxygen to generate API documentation."; \
245 echo "Install doxygen and rerun configure." ; \
248 @echo "Generating API documentation in gammu-doc directory"
249 @$(DOXYGEN) cfg/doxygen/Doxyfile
251 tags: $(shell find . -name '*.[ch]' -o -name '*.cpp')
252 @echo Generating tags file
253 @ctags $(shell find . -name '*.[ch]' -o -name '*.cpp')
255 # This will convert all *.[ch] files to CRLF (DOS/Windoze), it expects all
256 # files are LF only or CRLF only
258 @echo "Converting to CRLF:"
259 @find . -name '*.[ch]' -o -name '*.cpp' | \
260 while read fname ; do \
265 # This will convert all *.[ch] files to LF (Unix/Linux), it expects all
266 # files are LF only or CRLF only
268 @echo "Converting to LF:"
269 @find . -name '*.[ch]' -o -name '*.cpp' | \
270 while read fname ; do \
272 fromdos "$${fname}"; \
275 # This will convert all *.[ch] files to LF (Unix/Linux), it will convert any
276 # possible single remaining CR to LF
278 @echo "Converting to LF with fixup:"
279 @tmpfile=`mktemp /tmp/gammu-fixcrlf.XXXXXX` export tmpfile ; \
280 find . -name '*.[ch]' -o -name '*.cpp' | \
281 while read fname ; do \
282 echo -n "$${fname}" ; \
283 fromdos "$${fname}" ; \
284 if ( file "$${fname}" | grep -q 'CR' ) ; then \
285 cat "$${fname}" > "$${tmpfile}" ; \
286 tr '\r' '\n' < "$${tmpfile}" > "$${fname}" ; \
292 rm -f "$${fname}" ; \
296 @echo Making Gammu tree snapshot
297 @$(INSTALL) -d $(TEMP_DIR)/gammu-$(VERSION)/
298 @for xxx in '.'; do \
299 ( cd $(TOPDIR)/$$xxx; \
300 $(FIND) . -type d \! -path "*CVS*" \
301 -exec $(INSTALL) -m 0755 -d $(TEMP_DIR)/gammu-$(VERSION)/{} \; ; \
302 $(FIND) . -type f \! -path "*CVS*" \
303 -exec $(INSTALL) -m 0644 {} $(TEMP_DIR)/gammu-$(VERSION)/{} \; \
306 @$(RM) -rf gammu-$(VERSION)/
307 @$(INSTALL) -d gammu-$(VERSION)
308 @cp $(TEMP_DIR)/gammu-$(VERSION)/* --target-directory=gammu-$(VERSION) -r
309 @$(RM) $(TEMP_DIR)/gammu-$(VERSION) -r
310 @chmod a+rwx gammu-$(VERSION)/configure
311 make -C gammu-$(VERSION) clean
314 @find gammu-$(VERSION)/ -exec chmod u+w {} \;
315 @echo Creating $(RPM_DIR)/SOURCES/gammu-$(VERSION).tar.gz file
316 @tar cvfz $(RPM_DIR)/SOURCES/gammu-$(VERSION).tar.gz gammu-$(VERSION) > /dev/null
317 @echo Removing Gammu tree snapshot
318 @$(RM) -r gammu-$(VERSION)/
319 @echo Installing $(RPM_DIR)/SPECS/gammu.spec
320 @$(INSTALL) -m 0444 $(TOPDIR)/gammu.spec $(RPM_DIR)/SPECS/gammu.spec
321 @echo Making packages
322 @$(RPMBUILD) -ba -v $(RPM_DIR)/SPECS/gammu.spec
323 @$(RM) $(RPM_DIR)/SPECS/gammu.spec
324 @$(RM) $(RPM_DIR)/SOURCES/gammu-$(VERSION).tar.gz
325 @$(RM) -r $(RPM_DIR)/BUILD/gammu-$(VERSION)
326 @$(MV) $(RPM_DIR)/SRPMS/gammu-$(VERSION)*.rpm ..
327 @$(MV) $(RPM_DIR)/RPMS/*/gammu-*$(VERSION)*.rpm ..
328 @ls -l ../gammu-*$(VERSION)*.rpm
331 @echo Building Debian package
332 @fakeroot make -f debian/rules binary