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 = $(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         touch debian/tmp
64
65 ../$(paket)_$(version)-$(build)_$(arch).deb:debian/tmp/DEBIAN/control $(std_inst_tgt) $(add_inst_tgt) debian/tmp
66         $(DEB)
67         mv debian/tmp.deb ../$(paket)_$(version)-$(build)_$(arch).deb
68
69 debian/tmp/DEBIAN/control: debian/control debian/changelog
70         dpkg-gencontrol
71
72 debian/control: debian/$(paket).control
73         sed "s/_DEB_HOST_ARCH/${DEB_HOST_ARCH}/" debian/$(paket).control > debian/control
74
75 debian/changelog: $(changelog_source) debian/rules.pre
76         sed "s/%BUILD%/$(build)/" $(changelog_source) > debian/changelog
77
78 debian/tmp/usr/share/doc/$(paket)/changelog: debian/changelog
79         mkdir -p debian/tmp/usr/share/doc/$(paket)
80         cp debian/changelog debian/tmp/usr/share/doc/$(paket)/changelog
81
82 debian/tmp/usr/share/doc/$(paket)/copyright: debian/copyright
83         mkdir -p debian/tmp/usr/share/doc/$(paket)
84         cp debian/copyright debian/tmp/usr/share/doc/$(paket)/copyright
85
86 debian/tmp/usr/share/doc/$(paket)/README.debian: debian/README.debian
87         mkdir -p debian/tmp/usr/share/doc/$(paket)
88         cp debian/README.debian debian/tmp/usr/share/doc/$(paket)/README.debian
89
90 debian/tmp/DEBIAN/preinst: debian/$(paket).preinst
91         cp debian/$(paket).preinst debian/tmp/DEBIAN/preinst
92
93 debian/tmp/DEBIAN/postinst: debian/$(paket).postinst
94         cp debian/$(paket).postinst debian/tmp/DEBIAN/postinst
95
96 debian/tmp/DEBIAN/prerm: debian/$(paket).prerm
97         cp debian/$(paket).prerm debian/tmp/DEBIAN/prerm
98
99 debian/tmp/DEBIAN/postrm: debian/$(paket).postrm
100         cp debian/$(paket).postrm debian/tmp/DEBIAN/postrm
101
102 debian/README.debian:
103         echo "developed under:" > debian/README.debian
104         cat /etc/issue >> debian/README.debian
105         echo "Architecture: $(arch)" >> debian/README.debian
106
107 debian/copyright:
108         cp /usr/share/mbuild/copyright debian/copyright
109
110 debian/default.changelog:
111         @echo "$(paket) ($(version)-$(build)) unstable; urgency=medium" >debian/default.changelog
112         @echo "  * generated" >>debian/default.changelog
113         @echo " -- Michael Wagner <michael@wagnertech.de>  Thu, 11 Feb 2021 10:00:00 +0100" >>debian/default.changelog
114
115 # Load project specification
116 -include rules.post
117
118