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