4c8a097626ffd373c468411e7e805d903dc69585
[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
12 PRJS            = simulator/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\
47           cd $$pkg && $(MAKE) -f clean.mk clean; cd ..;\
48         done
49         @for prj in $(PRJS); do\
50           cd $$prj && $(MAKE) clean; cd ..;\
51         done
52  
53
54 # Deleting all files created by configuring or building the program
55 # -----------------------------------------------------------------
56 distclean: clean
57         $(MAKE) -f clean.mk distclean
58         @for pkg in $(PKGS); do\
59           cd $$pkg && $(MAKE) -f clean.mk distclean; cd ..;\
60         done
61         @for prj in $(PRJS); do\
62           cd $$prj && $(MAKE) distclean; cd ..;\
63         done
64  
65
66 # Like clean but some files may still exist
67 # -----------------------------------------
68 mostlyclean: clean
69         $(MAKE) -f clean.mk mostlyclean
70         @for pkg in $(PKGS); do\
71           cd $$pkg && $(MAKE) -f clean.mk mostlyclean; cd ..;\
72         done
73         @for prj in $(PRJS); do\
74           cd $$prj && $(MAKE) mostlyclean; cd ..;\
75         done
76
77
78 # Deleting everything that can reconstructed by this Makefile. It deletes
79 # everything deleted by distclean plus files created by bison, stc.
80 # -----------------------------------------------------------------------
81 realclean: distclean
82         $(MAKE) -f clean.mk realclean
83         @for pkg in $(PKGS); do\
84           cd $$pkg && $(MAKE) -f clean.mk realclean; cd ..;\
85         done
86         @for prj in $(PRJS); do\
87           cd $$prj && $(MAKE) realclean; cd ..;\
88         done
89
90
91 # Creating distribution
92 # ---------------------
93 dist: distclean
94         @if [ -f devel ]; then\
95           rm -f devel; mkdist sdcc; touch devel;\
96         else\
97           mkdist sdcc;\
98         fi
99
100
101 # Performing self-test
102 # --------------------
103 check:
104
105
106 # Performing installation test
107 # ----------------------------
108 installcheck:
109
110
111 # Creating dependencies
112 # ---------------------
113 dep:
114         $(MAKE) -f main.mk dep
115         @for pkg in $(PKGS); do\
116           cd $$pkg && $(MAKE) dep; cd ..;\
117         done
118
119
120 # My rules
121 # --------
122
123 putcopyright:
124         'put(c)' -s $(STARTYEAR) *.cc *.h *.y *.l
125
126
127 # Remaking configuration
128 # ----------------------
129 configure: configure.in
130         $(SHELL) $(AUTOCONF)
131
132 main.mk: $(srcdir)/main_in.mk $(srcdir)/configure.in config.status
133         $(SHELL) ./config.status
134
135 Makefiles: makefiles
136
137 makefiles: config.status
138
139 config.status: configure
140         $(SHELL) ./config.status --recheck
141
142 makefiles:
143         $(SHELL) ./config.status
144
145 freshconf: main.mk
146
147 checkconf:
148         @if [ -f devel ]; then\
149           $(MAKE) freshconf;\
150         fi
151
152 # End of Makefile