e84acf9f8718aa934dd4521a131eb8dad6b30e70
[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
11 std_inst_tgt = debian/tmp/usr/share/doc/$(paket)/copyright debian/tmp/usr/share/doc/$(paket)/README.debian
12 changelog_source = debian/$(paket).changelog
13
14 include debian/rules.pre
15
16 .PHONY: build
17
18 default: $(BUILD)
19
20 # Löschen aller kompilierten, erzeugten und nicht benötigten Dateien im Bauverzeichnis
21 clean:
22         -rm -rf debian/tmp
23
24 # Bauen der kompilierten Programme und formatierten Dokumente aus den Quellen im Bauverzeichnis
25 build: ../build/debian/$(paket).build sync
26         cd ../build ; debian/$(paket).build
27         # Build succeeded
28
29 nobuild:
30         # No build required
31
32 install:
33         debian/$(paket).cp $(INSTALL_DIR)
34 pack: $(PACK)
35         # packing succeeded
36
37 # Bauen der kompilierten architekturabhängigen Programme aus den Quellen im Bauverzeichnis
38 build-arch:
39
40 # Bauen der architekturunabhängigen formatierten Dokumente aus den Quellen im Bauverzeichnis
41 build-indep:
42
43 # 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)
44 install: 
45
46 # Erstellen aller Binärpakete (effektiv ist dies die Kombination der binary-arch- und binary-indep-Ziele)
47 binary: binary-arch binary-indep 
48
49 # Erstellen Architektur-abhängiger (Architecture: any) Binärpakete im übergeordneten Verzeichnis
50 binary-arch: $(BINARY_ARCH)
51
52 # Erstellen Architektur-unabhängiger (Architecture: all) Binärpakete im übergeordneten Verzeichnis
53 binary-indep: $(BINARY_INDEP)
54
55 version: ~/build/$(TARGET)
56         $(INSERT_BUILD) ~/build/$(TARGET) $(build)
57         cp ~/build/*$(build)* ../
58
59 ../build:
60         mkdir ../build
61
62 sync: ../build
63         rsync $(RSYNC_OPT) ./ ../build/
64
65 copy: debian/$(paket).cp
66         debian/$(paket).cp debian/tmp
67         create-conffiles debian/tmp
68         touch debian/tmp
69
70 ../$(paket)_$(version)-$(build)_$(arch).deb:debian/tmp/DEBIAN/control $(std_inst_tgt) $(add_inst_tgt) debian/tmp
71         $(DEB)
72         mv debian/tmp.deb ../$(paket)_$(version)-$(build)_$(arch).deb
73
74 debian/tmp/DEBIAN/control: debian/control debian/changelog
75         dpkg-gencontrol
76
77 debian/control: debian/$(paket).control
78         sed "s/_DEB_HOST_ARCH/${DEB_HOST_ARCH}/" debian/$(paket).control > debian/control
79
80 debian/changelog: $(changelog_source) debian/rules.pre
81         sed "s/%BUILD%/$(build)/" $(changelog_source) > debian/changelog
82
83 debian/tmp/usr/share/doc/$(paket)/changelog: debian/changelog
84         mkdir -p debian/tmp/usr/share/doc/$(paket)
85         cp debian/changelog debian/tmp/usr/share/doc/$(paket)/changelog
86
87 debian/tmp/usr/share/doc/$(paket)/copyright: debian/copyright
88         mkdir -p debian/tmp/usr/share/doc/$(paket)
89         cp debian/copyright debian/tmp/usr/share/doc/$(paket)/copyright
90
91 debian/tmp/usr/share/doc/$(paket)/README.debian: debian/README.debian
92         mkdir -p debian/tmp/usr/share/doc/$(paket)
93         cp debian/README.debian debian/tmp/usr/share/doc/$(paket)/README.debian
94
95 debian/tmp/DEBIAN/preinst: debian/$(paket).preinst
96         cp debian/$(paket).preinst debian/tmp/DEBIAN/preinst
97
98 debian/tmp/DEBIAN/postinst: debian/$(paket).postinst
99         cp debian/$(paket).postinst debian/tmp/DEBIAN/postinst
100
101 debian/tmp/DEBIAN/prerm: debian/$(paket).prerm
102         cp debian/$(paket).prerm debian/tmp/DEBIAN/prerm
103
104 debian/tmp/DEBIAN/postrm: debian/$(paket).postrm
105         cp debian/$(paket).postrm debian/tmp/DEBIAN/postrm
106
107 debian/README.debian:
108         echo "developed under:" > debian/README.debian
109         cat /etc/issue >> debian/README.debian
110         echo "Architecture: $(arch)" >> debian/README.debian
111
112 debian/copyright:
113         cp /usr/share/mbuild/copyright debian/copyright
114
115 debian/default.changelog:
116         @echo "$(paket) ($(version)-$(build)) unstable; urgency=medium" >debian/default.changelog
117         @echo "  * generated" >>debian/default.changelog
118         @echo " -- Michael Wagner <michael@wagnertech.de>  Thu, 11 Feb 2021 10:00:00 +0100" >>debian/default.changelog
119
120 # Load project specification
121 -include rules.post
122
123