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