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