Minor changes
[fw/sdcc] / Makefile
1 #
2 #
3 #
4
5 SHELL           = /bin/sh
6 AUTOCONF        = autoconf
7
8 PRJDIR          = .
9 PKGS            = support/gc support/cpp \
10                   src as/mcs51 debugger/mcs51 \
11                   device/include device/lib sim/mcs51
12 PRJS            = sim/mcs51
13
14 srcdir          = .
15
16
17 # Compiling entire program or any subproject
18 # ------------------------------------------
19 all: checkconf
20         for pkg in $(PKGS); do $(MAKE) -C $$pkg; done
21         $(MAKE) -f main.mk all
22
23
24 # Compiling and installing everything and runing test
25 # ---------------------------------------------------
26 install:
27         $(MAKE) -f main.mk install
28         @for pkg in $(PKGS); do\
29           cd $$pkg && $(MAKE) install; cd ..;\
30         done
31
32
33 # Deleting all the installed files
34 # --------------------------------
35 uninstall:
36         $(MAKE) -f main.mk uninstall
37         @for pkg in $(PKGS); do\
38           cd cmd && $(MAKE) uninstall; cd ..;\
39         done
40
41
42 # Deleting all files created by building the program
43 # --------------------------------------------------
44 clean:
45         $(MAKE) -f clean.mk clean
46         for pkg in $(PKGS); do $(MAKE) -C $$pkg clean; done
47         @for prj in $(PRJS); do\
48           cd $$prj && $(MAKE) clean; cd ..;\
49         done
50  
51
52 # Deleting all files created by configuring or building the program
53 # -----------------------------------------------------------------
54 distclean: clean
55         $(MAKE) -f clean.mk distclean
56         @for pkg in $(PKGS); do\
57           cd $$pkg && $(MAKE) -f clean.mk distclean; cd ..;\
58         done
59         @for prj in $(PRJS); do\
60           cd $$prj && $(MAKE) distclean; cd ..;\
61         done
62  
63
64 # Like clean but some files may still exist
65 # -----------------------------------------
66 mostlyclean: clean
67         $(MAKE) -f clean.mk mostlyclean
68         @for pkg in $(PKGS); do\
69           cd $$pkg && $(MAKE) -f clean.mk mostlyclean; cd ..;\
70         done
71         @for prj in $(PRJS); do\
72           cd $$prj && $(MAKE) mostlyclean; cd ..;\
73         done
74
75
76 # Deleting everything that can reconstructed by this Makefile. It deletes
77 # everything deleted by distclean plus files created by bison, stc.
78 # -----------------------------------------------------------------------
79 realclean: distclean
80         $(MAKE) -f clean.mk realclean
81         @for pkg in $(PKGS); do\
82           cd $$pkg && $(MAKE) -f clean.mk realclean; cd ..;\
83         done
84         @for prj in $(PRJS); do\
85           cd $$prj && $(MAKE) realclean; cd ..;\
86         done
87
88
89 # Creating distribution
90 # ---------------------
91 dist: distclean
92         @if [ -f devel ]; then\
93           rm -f devel; mkdist sdcc; touch devel;\
94         else\
95           mkdist sdcc;\
96         fi
97
98
99 # Performing self-test
100 # --------------------
101 check:
102
103
104 # Performing installation test
105 # ----------------------------
106 installcheck:
107
108
109 # Creating dependencies
110 # ---------------------
111 dep:
112         $(MAKE) -f main.mk dep
113         @for pkg in $(PKGS); do\
114           cd $$pkg && $(MAKE) dep; cd ..;\
115         done
116
117
118 # My rules
119 # --------
120
121 putcopyright:
122         'put(c)' -s $(STARTYEAR) *.cc *.h *.y *.l
123
124
125 # Remaking configuration
126 # ----------------------
127 configure: configure.in
128         $(SHELL) $(AUTOCONF)
129
130 main.mk: $(srcdir)/main_in.mk $(srcdir)/configure.in config.status
131         $(SHELL) ./config.status
132
133 Makefiles: makefiles
134
135 makefiles: config.status
136
137 config.status: configure
138         $(SHELL) ./config.status --recheck
139
140 makefiles:
141         $(SHELL) ./config.status
142
143 freshconf: main.mk
144
145 checkconf:
146         @if [ -f devel ]; then\
147           $(MAKE) freshconf;\
148         fi
149
150 # End of Makefile