1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
#!/usr/bin/make -f
# Parse the version number from the change log:
# major.minor.patchlevel-revision
regexp:=^Version: \([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\)-\([0-9]\+\)$$
major:=$(shell dpkg-parsechangelog | grep ^Version: | sed 's/$(regexp)/\1/')
minor:=$(shell dpkg-parsechangelog | grep ^Version: | sed 's/$(regexp)/\2/')
patch:=$(shell dpkg-parsechangelog | grep ^Version: | sed 's/$(regexp)/\3/')
revision:=$(shell dpkg-parsechangelog | grep ^Version: | sed 's/$(regexp)/\4/')
gcc_host:=$(shell gnatgcc -dumpmachine)
gcc_version:=$(shell gnatgcc -dumpversion)
SPECS := $(wildcard *.ads)
BODIES := $(wildcard *.adb)
OBJECTS := $(patsubst %.ads,obj/%.o,$(SPECS))
CFLAGS=-O2 -gnato -gnatn -gnatVa
build: build-stamp
build-stamp:
dh_testdir
$(MAKE) -f debian/rules objects CFLAGS="-g $(CFLAGS)"
ar rc libcharles.a obj/*.o
ranlib libcharles.a
rm -rf obj
$(MAKE) -f debian/rules objects CFLAGS="-fPIC $(CFLAGS)"
gnatgcc -shared -o libcharles.so.$(major).$(minor).$(patch) obj/*.o \
-L/usr/lib/gcc-lib/$(gcc_host)/$(gcc_version)/adalib \
-lgnat \
-Wl,--soname,libcharles.so.$(major)
-rm build_all.adb
touch build-stamp
objects: build_all.adb
-mkdir obj
(cd obj; gnatmake -j2 $(CFLAGS) -I.. build_all)
-rm -f obj/build_all.o
build_all.adb: $(SPECS) $(BODIES)
@for i in $(SPECS); do \
p=`echo $$i | sed -e "s/\.ads//" -e "s/-/./g"` ; \
echo "with $$p;" >> $@; \
done
@echo "procedure build_all is" >> $@
@echo "begin" >> $@
@echo " null;" >> $@
@echo "end build_all;" >> $@
clean:
dh_testdir
dh_testroot
dh_clean
rm -rf build-stamp obj libcharles* build_all.adb
binary-indep:
binary-arch: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs usr/share/ada/adainclude/charles \
usr/lib/ada/adalib/charles \
usr/share/doc/libcharles$(major)-dev \
usr/lib
dh_install *.ad[bs] usr/share/ada/adainclude/charles
dh_install obj/*.ali usr/lib/ada/adalib/charles
dh_install debian/charles.gpr usr/share/ada/adainclude
dh_install libcharles.a usr/lib
dh_link usr/lib/libcharles.so.$(major).$(minor).$(patch) \
usr/lib/libcharles.so
dh_installchangelogs
dh_install -plibcharles$(major) \
libcharles.so.$(major).$(minor).$(patch) usr/lib
dh_link -plibcharles$(major) \
usr/lib/libcharles.so.$(major).$(minor).$(patch) \
usr/lib/libcharles.so.$(major)
dh_strip -plibcharles$(major)
dh_installdocs -A
dh_compress
dh_fixperms
dh_makeshlibs -plibcharles$(major)
dh_installdeb
dh_shlibdeps -plibcharles$(major)
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary
|