annotate mk/objective.mk @ 705:93c09e025180 trunk

[svn] - more intelligently handle directory creation
author nenolod
date Sun, 26 Feb 2006 15:39:06 -0800
parents 63ce2be16d4f
children e4069b00b174
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
562
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
1 # Shut up GNU make
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
2 .SILENT:
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
3
578
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
4 OBJECTIVE_DIRECTORIES = none
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
5 OBJECTIVE_LIBS = none
581
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
6 OBJECTIVE_LIBS_NOINST = none
578
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
7 OBJECTIVE_BINS = none
566
ab7027a06ca9 [svn] convert mpg123 over... right now we don't use the "x86-optimized code", although I doubt it makes a lick of
nenolod
parents: 564
diff changeset
8 SUBDIRS = none
658
a019c0e28b28 [svn] If the makefile has a HEADERS variable, then install them to the
nenolod
parents: 626
diff changeset
9 HEADERS = none
a019c0e28b28 [svn] If the makefile has a HEADERS variable, then install them to the
nenolod
parents: 626
diff changeset
10
595
13a8fd9cbc33 [svn] fix some path issues
nenolod
parents: 593
diff changeset
11 LIBDIR = $(libdir)
13a8fd9cbc33 [svn] fix some path issues
nenolod
parents: 593
diff changeset
12 BINDIR = $(bindir)
671
3e03da73a514 [svn] install HEADERS properly (oops)
nenolod
parents: 660
diff changeset
13 INCLUDEDIR = $(pkgincludedir)
566
ab7027a06ca9 [svn] convert mpg123 over... right now we don't use the "x86-optimized code", although I doubt it makes a lick of
nenolod
parents: 564
diff changeset
14 CFLAGS += -DHAVE_CONFIG_H
ab7027a06ca9 [svn] convert mpg123 over... right now we don't use the "x86-optimized code", although I doubt it makes a lick of
nenolod
parents: 564
diff changeset
15
705
93c09e025180 [svn] - more intelligently handle directory creation
nenolod
parents: 699
diff changeset
16 OBJ_DIRS = $(BINDIR) $(LIBDIR) $(INCLUDEDIR)
93c09e025180 [svn] - more intelligently handle directory creation
nenolod
parents: 699
diff changeset
17
562
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
18 default: all
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
19 all: build
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
20
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
21 install:
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
22 $(MAKE) install-prehook
705
93c09e025180 [svn] - more intelligently handle directory creation
nenolod
parents: 699
diff changeset
23 @if test ! -d $(DESTDIR)/$(BINDIR); then \
93c09e025180 [svn] - more intelligently handle directory creation
nenolod
parents: 699
diff changeset
24 for i in $(OBJ_DIRS); do \
93c09e025180 [svn] - more intelligently handle directory creation
nenolod
parents: 699
diff changeset
25 $(INSTALL) -d -m 755 $(DESTDIR)/$$i; \
93c09e025180 [svn] - more intelligently handle directory creation
nenolod
parents: 699
diff changeset
26 done; \
93c09e025180 [svn] - more intelligently handle directory creation
nenolod
parents: 699
diff changeset
27 fi
593
81a746ef39d0 [svn] install subobjectives
nenolod
parents: 581
diff changeset
28 @if test "$(SUBDIRS)" != "none"; then \
81a746ef39d0 [svn] install subobjectives
nenolod
parents: 581
diff changeset
29 for i in $(SUBDIRS); do \
81a746ef39d0 [svn] install subobjectives
nenolod
parents: 581
diff changeset
30 echo "[installing subobjective: $$i]"; \
81a746ef39d0 [svn] install subobjectives
nenolod
parents: 581
diff changeset
31 (cd $$i; $(MAKE) install; cd ..); \
81a746ef39d0 [svn] install subobjectives
nenolod
parents: 581
diff changeset
32 done; \
81a746ef39d0 [svn] install subobjectives
nenolod
parents: 581
diff changeset
33 fi
578
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
34 @if test "$(OBJECTIVE_DIRECTORIES)" != "none"; then \
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
35 for i in $(OBJECTIVE_DIRECTORIES); do \
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
36 printf "%10s %-20s\n" MKDIR $$i; \
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
37 $(INSTALL) -d -m 755 $(DESTDIR)/$$i; \
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
38 done; \
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
39 fi
658
a019c0e28b28 [svn] If the makefile has a HEADERS variable, then install them to the
nenolod
parents: 626
diff changeset
40 @if test "$(HEADERS)" != "none"; then \
a019c0e28b28 [svn] If the makefile has a HEADERS variable, then install them to the
nenolod
parents: 626
diff changeset
41 for i in $(HEADERS); do \
a019c0e28b28 [svn] If the makefile has a HEADERS variable, then install them to the
nenolod
parents: 626
diff changeset
42 printf "%10s %-20s\n" INSTALL $$i; \
671
3e03da73a514 [svn] install HEADERS properly (oops)
nenolod
parents: 660
diff changeset
43 $(INSTALL_DATA) $(INSTALL_OVERRIDE) $$i $(DESTDIR)/$(INCLUDEDIR)/$$i; \
658
a019c0e28b28 [svn] If the makefile has a HEADERS variable, then install them to the
nenolod
parents: 626
diff changeset
44 done; \
a019c0e28b28 [svn] If the makefile has a HEADERS variable, then install them to the
nenolod
parents: 626
diff changeset
45 fi
578
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
46 @if test "$(OBJECTIVE_LIBS)" != "none"; then \
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
47 for i in $(OBJECTIVE_LIBS); do \
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
48 printf "%10s %-20s\n" INSTALL $$i; \
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
49 $(INSTALL) $(INSTALL_OVERRIDE) $$i $(DESTDIR)/$(LIBDIR)/$$i; \
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
50 done; \
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
51 fi
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
52 @if test "$(OBJECTIVE_BINS)" != "none"; then \
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
53 for i in $(OBJECTIVE_BINS); do \
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
54 printf "%10s %-20s\n" INSTALL $$i; \
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
55 $(INSTALL) $(INSTALL_OVERRIDE) $$i $(DESTDIR)/$(BINDIR)/$$i; \
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
56 done; \
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
57 fi;
562
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
58 $(MAKE) install-posthook
564
ca034eafe72f [svn] Add confirmation messages.
nenolod
parents: 563
diff changeset
59 @echo "[all objectives installed]"
562
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
60
563
0879e7ad85b1 [svn] some buildsystem changes... nothing notable yet
nenolod
parents: 562
diff changeset
61 clean:
0879e7ad85b1 [svn] some buildsystem changes... nothing notable yet
nenolod
parents: 562
diff changeset
62 $(MAKE) clean-prehook
567
2ed2993cd920 [svn] fix make clean
nenolod
parents: 566
diff changeset
63 @if test "$(SUBDIRS)" != "none"; then \
2ed2993cd920 [svn] fix make clean
nenolod
parents: 566
diff changeset
64 for i in $(SUBDIRS); do \
2ed2993cd920 [svn] fix make clean
nenolod
parents: 566
diff changeset
65 echo "[cleaning subobjective: $$i]"; \
2ed2993cd920 [svn] fix make clean
nenolod
parents: 566
diff changeset
66 (cd $$i; $(MAKE) clean; cd ..); \
2ed2993cd920 [svn] fix make clean
nenolod
parents: 566
diff changeset
67 done; \
2ed2993cd920 [svn] fix make clean
nenolod
parents: 566
diff changeset
68 fi
563
0879e7ad85b1 [svn] some buildsystem changes... nothing notable yet
nenolod
parents: 562
diff changeset
69 $(MAKE) clean-posthook
568
f34898e3333a [svn] Announce when we're building a library or binary objective, not just a component objective.
nenolod
parents: 567
diff changeset
70 $(RM) *.o *.lo *.so *.a *.sl
564
ca034eafe72f [svn] Add confirmation messages.
nenolod
parents: 563
diff changeset
71 @echo "[all objectives cleaned]"
563
0879e7ad85b1 [svn] some buildsystem changes... nothing notable yet
nenolod
parents: 562
diff changeset
72
0879e7ad85b1 [svn] some buildsystem changes... nothing notable yet
nenolod
parents: 562
diff changeset
73 distclean: clean
0879e7ad85b1 [svn] some buildsystem changes... nothing notable yet
nenolod
parents: 562
diff changeset
74 $(RM) mk/rules.mk
0879e7ad85b1 [svn] some buildsystem changes... nothing notable yet
nenolod
parents: 562
diff changeset
75
562
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
76 build:
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
77 $(MAKE) build-prehook
658
a019c0e28b28 [svn] If the makefile has a HEADERS variable, then install them to the
nenolod
parents: 626
diff changeset
78 +@if test "$(SUBDIRS)" != "none"; then \
566
ab7027a06ca9 [svn] convert mpg123 over... right now we don't use the "x86-optimized code", although I doubt it makes a lick of
nenolod
parents: 564
diff changeset
79 for i in $(SUBDIRS); do \
ab7027a06ca9 [svn] convert mpg123 over... right now we don't use the "x86-optimized code", although I doubt it makes a lick of
nenolod
parents: 564
diff changeset
80 echo "[building subobjective: $$i]"; \
ab7027a06ca9 [svn] convert mpg123 over... right now we don't use the "x86-optimized code", although I doubt it makes a lick of
nenolod
parents: 564
diff changeset
81 (cd $$i; $(MAKE); cd ..); \
570
ee984d579bbe [svn] Announce objective completion.
nenolod
parents: 569
diff changeset
82 echo "[finished subobjective: $$i]"; \
566
ab7027a06ca9 [svn] convert mpg123 over... right now we don't use the "x86-optimized code", although I doubt it makes a lick of
nenolod
parents: 564
diff changeset
83 done; \
ab7027a06ca9 [svn] convert mpg123 over... right now we don't use the "x86-optimized code", although I doubt it makes a lick of
nenolod
parents: 564
diff changeset
84 fi
581
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
85 @if test "$(OBJECTIVE_LIBS)" != "none"; then \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
86 for i in $(OBJECTIVE_LIBS); do \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
87 echo "[building library objective: $$i]"; \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
88 $(MAKE) $$i; \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
89 echo "[finished library objective: $$i]"; \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
90 done; \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
91 fi
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
92 @if test "$(OBJECTIVE_LIBS_NOINST)" != "none"; then \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
93 for i in $(OBJECTIVE_LIBS_NOINST); do \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
94 echo "[building library dependency: $$i]"; \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
95 $(MAKE) $$i; \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
96 echo "[finished library dependency: $$i]"; \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
97 done; \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
98 fi
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
99 @if test "$(OBJECTIVE_BINS)" != "none"; then \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
100 for i in $(OBJECTIVE_BINS); do \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
101 echo "[building binary objective: $$i]"; \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
102 $(MAKE) $$i; \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
103 echo "[finished binary objective: $$i]"; \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
104 done; \
572cbb4c25ba [svn] more fixes
nenolod
parents: 580
diff changeset
105 fi
562
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
106 $(MAKE) build-posthook
564
ca034eafe72f [svn] Add confirmation messages.
nenolod
parents: 563
diff changeset
107 @echo "[all objectives built]"
562
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
108
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
109 .c.o:
566
ab7027a06ca9 [svn] convert mpg123 over... right now we don't use the "x86-optimized code", although I doubt it makes a lick of
nenolod
parents: 564
diff changeset
110 printf "%10s %-20s\n" CC $<
562
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
111 $(CC) $(CFLAGS) -c $< -o $@
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
112
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
113 .cc.o:
566
ab7027a06ca9 [svn] convert mpg123 over... right now we don't use the "x86-optimized code", although I doubt it makes a lick of
nenolod
parents: 564
diff changeset
114 printf "%10s %-20s\n" CXX $<;
562
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
115 $(CXX) $(CXXFLAGS) -c $< -o $@
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
116
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
117 .cpp.o:
566
ab7027a06ca9 [svn] convert mpg123 over... right now we don't use the "x86-optimized code", although I doubt it makes a lick of
nenolod
parents: 564
diff changeset
118 printf "%10s %-20s\n" CXX $<;
562
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
119 $(CXX) $(CXXFLAGS) -c $< -o $@
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
120
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
121 .cxx.o:
566
ab7027a06ca9 [svn] convert mpg123 over... right now we don't use the "x86-optimized code", although I doubt it makes a lick of
nenolod
parents: 564
diff changeset
122 printf "%10s %-20s\n" CXX $<;
562
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
123 $(CXX) $(CXXFLAGS) -c $< -o $@
5cdadcf74ec3 [svn] needed requirements for objective-based buildsystem (automake replacement)
nenolod
parents:
diff changeset
124
578
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
125 %.so: $(OBJECTS)
626
eb0c533e7c48 [svn] do not forkbomb if we have a malformed makefile
nenolod
parents: 595
diff changeset
126 if test "x$(OBJECTS)" != "x"; then \
699
63ce2be16d4f [svn] experimental fix
nenolod
parents: 689
diff changeset
127 $(MAKE) $(OBJECTS); \
626
eb0c533e7c48 [svn] do not forkbomb if we have a malformed makefile
nenolod
parents: 595
diff changeset
128 printf "%10s %-20s\n" LINK $@; \
689
43a4216d3dc1 [svn] Attach a SONAME to all .so's.
nenolod
parents: 671
diff changeset
129 $(CC) -fPIC -DPIC -shared -o $@ -Wl,-soname=$@ $(OBJECTS) $(LDFLAGS) $(LIBADD); \
626
eb0c533e7c48 [svn] do not forkbomb if we have a malformed makefile
nenolod
parents: 595
diff changeset
130 fi
578
d89a7b85528d [svn] buildsystem improvements
nenolod
parents: 570
diff changeset
131
580
07e77b804697 [svn] ditto for static libraries
nenolod
parents: 579
diff changeset
132 %.a: $(OBJECTS)
626
eb0c533e7c48 [svn] do not forkbomb if we have a malformed makefile
nenolod
parents: 595
diff changeset
133 if test "x$(OBJECTS)" != "x"; then \
699
63ce2be16d4f [svn] experimental fix
nenolod
parents: 689
diff changeset
134 $(MAKE) $(OBJECTS); \
626
eb0c533e7c48 [svn] do not forkbomb if we have a malformed makefile
nenolod
parents: 595
diff changeset
135 printf "%10s %-20s\n" LINK $@; \
eb0c533e7c48 [svn] do not forkbomb if we have a malformed makefile
nenolod
parents: 595
diff changeset
136 $(AR) cq $@ $(OBJECTS); \
eb0c533e7c48 [svn] do not forkbomb if we have a malformed makefile
nenolod
parents: 595
diff changeset
137 fi
580
07e77b804697 [svn] ditto for static libraries
nenolod
parents: 579
diff changeset
138
579
785ec2ad4ea4 [svn] try to add a "default" make rule for $(OBJECTIVE_BINS)
nenolod
parents: 578
diff changeset
139 $(OBJECTIVE_BINS): $(OBJECTS)
626
eb0c533e7c48 [svn] do not forkbomb if we have a malformed makefile
nenolod
parents: 595
diff changeset
140 if test "x$(OBJECTS)" != "x"; then \
699
63ce2be16d4f [svn] experimental fix
nenolod
parents: 689
diff changeset
141 $(MAKE) $(OBJECTS); \
626
eb0c533e7c48 [svn] do not forkbomb if we have a malformed makefile
nenolod
parents: 595
diff changeset
142 printf "%10s %-20s\n" LINK $@; \
eb0c533e7c48 [svn] do not forkbomb if we have a malformed makefile
nenolod
parents: 595
diff changeset
143 $(CC) -o $@ $(OBJECTS) $(LDFLAGS) $(LIBADD); \
eb0c533e7c48 [svn] do not forkbomb if we have a malformed makefile
nenolod
parents: 595
diff changeset
144 fi
579
785ec2ad4ea4 [svn] try to add a "default" make rule for $(OBJECTIVE_BINS)
nenolod
parents: 578
diff changeset
145
563
0879e7ad85b1 [svn] some buildsystem changes... nothing notable yet
nenolod
parents: 562
diff changeset
146 clean-prehook:
0879e7ad85b1 [svn] some buildsystem changes... nothing notable yet
nenolod
parents: 562
diff changeset
147 clean-posthook:
0879e7ad85b1 [svn] some buildsystem changes... nothing notable yet
nenolod
parents: 562
diff changeset
148 build-prehook:
0879e7ad85b1 [svn] some buildsystem changes... nothing notable yet
nenolod
parents: 562
diff changeset
149 build-posthook:
0879e7ad85b1 [svn] some buildsystem changes... nothing notable yet
nenolod
parents: 562
diff changeset
150 install-prehook:
0879e7ad85b1 [svn] some buildsystem changes... nothing notable yet
nenolod
parents: 562
diff changeset
151 install-posthook:
0879e7ad85b1 [svn] some buildsystem changes... nothing notable yet
nenolod
parents: 562
diff changeset
152
0879e7ad85b1 [svn] some buildsystem changes... nothing notable yet
nenolod
parents: 562
diff changeset
153 # compatibility with automake follows
0879e7ad85b1 [svn] some buildsystem changes... nothing notable yet
nenolod
parents: 562
diff changeset
154 am--refresh: