gnublin1
[projects.git] / tools / make / makefile
1 # Generic makefile for mBuild build process
2
3 # defile default operations
4
5 NOP = @echo "No operation for target $@"
6 COMPILE = $(NOP)
7 COPY = $(NOP)
8 ZIP = zip -r $(project).zip $(project)
9 DEB = fakeroot dpkg-deb --build $(project)
10
11 #default parameters
12 project = default
13 SOURCES =
14 COPY_PRE =
15
16 # Load project specification
17 include make.pre
18
19 .SUFFIXES: .stamp .zip
20
21
22 #-----------------------------------------------------------------
23 # Hauptziele:
24 #
25 #               : ohne Parameter wird compiliert
26 # - zip         : packt ZIP file
27 # - deb         : packt Debian package
28 #
29 #-----------------------------------------------------------------
30
31 compile: compile.stamp
32         # compile ist fertig
33
34 zip: $(project).zip
35         # ZIP file ready
36
37 deb: $(project).deb
38         # Debian package ready
39
40 #-----------------------------------------------------------------
41 # compile steps
42 #-----------------------------------------------------------------
43
44 compile.stamp: $(SOURCES)
45         $(COMPILE)
46         @touch compile.stamp
47
48 #-----------------------------------------------------------------
49 # pack steps
50 #-----------------------------------------------------------------
51
52 copy.stamp: $(COPY_PRE)
53         $(COPY) $(project)
54         @touch copy.stamp
55
56 control.stamp: $(project).control
57         mkdir -p $(project)/DEBIAN
58         cp $(project).control $(project)/DEBIAN/control
59         if [ -f $(project).postinst ]; then cp $(project).postinst $(project)/DEBIAN/postinst; fi
60         @touch control.stamp
61
62 $(project).zip: copy.stamp $(project)
63         $(ZIP)
64
65 $(project).deb: copy.stamp control.stamp
66         $(DEB)
67         cp $(project).deb $(project)_$(version)$(_arch).deb
68
69 #-----------------------------------------------------------------
70 # utilities
71 #-----------------------------------------------------------------
72 clean:
73         -rm *.stamp 2>/dev/null
74         if [ -e $(project).zip ]; then rm $(project).zip; fi
75         if [ -e $(project) ]; then rm -rf $(project); fi
76