posaune
[projects.git] / tools / make / rules
1 #!/usr/bin/make -f
2
3 # Generic rules for mBuild build process
4
5 # defile default operations
6 NOP = @echo "No operation for target $@"
7 DEB = fakeroot dpkg-deb --build $(oldpack) debian/tmp
8 INSERT_BUILD = /usr/share/mbuild/insert_build.sh
9 RSYNC_OPT = -av --exclude="build" --exclude="debian/tmp" --exclude="Packages" --exclude="*Aktuell" --exclude=".*"
10 std_inst_tgt = debian/tmp/usr/share/doc/$(paket)/copyright debian/tmp/usr/share/doc/$(paket)/README.debian
11
12 include debian/rules.pre
13
14 .PHONY: build
15
16 default:
17         echo "no default rule available"
18
19 # Löschen aller kompilierten, erzeugten und nicht benötigten Dateien im Bauverzeichnis
20 clean:
21         -rm -rf debian/tmp
22
23 # Bauen der kompilierten Programme und formatierten Dokumente aus den Quellen im Bauverzeichnis
24 build: ../build/debian/$(paket).build sync
25         cd ../build ; debian/$(paket).build
26         # Build succeeded
27
28 pack: $(PACK)
29         # packing succeeded
30
31 # Bauen der kompilierten architekturabhängigen Programme aus den Quellen im Bauverzeichnis
32 build-arch:
33
34 # Bauen der architekturunabhängigen formatierten Dokumente aus den Quellen im Bauverzeichnis
35 build-indep:
36
37 # Installieren der Dateien in einen Verzeichnisbaum unterhalb des Verzeichnisses debian für jedes Binärpaket. Falls sie festgelegt wurden, hängen binary*-Ziele effektiv von diesem Ziel ab (optional)
38 install: 
39
40 # Erstellen aller Binärpakete (effektiv ist dies die Kombination der binary-arch- und binary-indep-Ziele)
41 binary: binary-arch binary-indep 
42
43 # Erstellen Architektur-abhängiger (Architecture: any) Binärpakete im übergeordneten Verzeichnis
44 binary-arch: $(BINARY_ARCH)
45
46 # Erstellen Architektur-unabhängiger (Architecture: all) Binärpakete im übergeordneten Verzeichnis
47 binary-indep: $(BINARY_INDEP)
48
49 version: ~/build/$(TARGET)
50         $(INSERT_BUILD) ~/build/$(TARGET) $(build)
51         cp ~/build/*$(build)* ../
52
53 ../build:
54         mkdir ../build
55
56 sync: ../build
57         rsync $(RSYNC_OPT) ./ ../build/
58
59 copy: debian/$(paket).cp
60         debian/$(paket).cp debian/tmp
61         touch debian/tmp
62
63 ../$(paket)_$(version)-$(build)_$(arch).deb:debian/tmp/DEBIAN/control $(std_inst_tgt) $(add_inst_tgt) debian/tmp
64         $(DEB)
65         mv debian/tmp.deb ../$(paket)_$(version)-$(build)_$(arch).deb
66
67 debian/tmp/DEBIAN/control: debian/control debian/changelog
68         dpkg-gencontrol
69
70 debian/control: debian/$(paket).control
71         sed "s/_DEB_HOST_ARCH/${DEB_HOST_ARCH}/" debian/$(paket).control >> debian/control
72
73 debian/changelog: debian/$(paket).changelog debian/rules.pre
74         sed "s/%BUILD%/$(build)/" debian/$(paket).changelog > debian/changelog
75
76 debian/tmp/usr/share/doc/$(paket)/changelog: debian/changelog
77         mkdir -p debian/tmp/usr/share/doc/$(paket)
78         cp debian/changelog debian/tmp/usr/share/doc/$(paket)/changelog
79
80 debian/tmp/usr/share/doc/$(paket)/copyright: debian/copyright
81         mkdir -p debian/tmp/usr/share/doc/$(paket)
82         cp debian/copyright debian/tmp/usr/share/doc/$(paket)/copyright
83
84 debian/tmp/usr/share/doc/$(paket)/README.debian: debian/README.debian
85         mkdir -p debian/tmp/usr/share/doc/$(paket)
86         cp debian/README.debian debian/tmp/usr/share/doc/$(paket)/README.debian
87
88 debian/tmp/DEBIAN/preinst: debian/$(paket).preinst
89         cp debian/$(paket).preinst debian/tmp/DEBIAN/preinst
90
91 debian/tmp/DEBIAN/postinst: debian/$(paket).postinst
92         cp debian/$(paket).postinst debian/tmp/DEBIAN/postinst
93
94 debian/tmp/DEBIAN/prerm: debian/$(paket).prerm
95         cp debian/$(paket).prerm debian/tmp/DEBIAN/prerm
96
97 debian/tmp/DEBIAN/postrm: debian/$(paket).postrm
98         cp debian/$(paket).postrm debian/tmp/DEBIAN/postrm
99
100 debian/README.debian:
101         echo "developed under:" > debian/README.debian
102         cat /etc/issue >> debian/README.debian
103         echo "Architecture: $(arch)" >> debian/README.debian
104
105 debian/copyright:
106         cp /usr/share/mbuild/copyright debian/copyright
107
108 # Load project specification
109 -include rules.post
110
111