11 include $(srcdir)/Makefile.common
13 SDCC_MISC = debugger/mcs51 sim/ucsim
14 SDCC_LIBS = support/cpp
15 SDCC_ASLINK = as/mcs51 as link
16 SDCC_PACKIHX = packihx
18 PKGS = $(SDCC_MISC) $(SDCC_LIBS) $(SDCC_ASLINK) \
19 src device/include device/lib $(SDCC_PACKIHX)
20 PKGS_TINI = $(SDCC_LIBS) $(SDCC_ASLINK) \
21 src device/include $(SDCC_PACKIHX)
25 # Compiling entire program or any subproject
26 # ------------------------------------------
29 tini: checkconf sdcc-tini
32 for lib in $(SDCC_LIBS); do $(MAKE) -C $$lib; done
38 for as in $(SDCC_ASLINK); do $(MAKE) -C $$as; done
41 for misc in $(SDCC_MISC); do $(MAKE) -C $$misc; done
44 $(MAKE) -C $(SDCC_PACKIHX)
47 $(MAKE) -C device/include
51 $(MAKE) -C device/include
52 $(MAKE) -C device/lib modelDS390
54 sdcc: sdcc-cc sdcc-aslink sdcc-misc sdcc-device sdcc-packihx
55 $(MAKE) -f main.mk all
57 sdcc-tini: sdcc-cc sdcc-aslink sdcc-device-tini sdcc-packihx
58 $(MAKE) -f main.mk all
60 # Some interesting sub rules
61 sdcc-bin: sdcc-cc sdcc-aslink sdcc-misc
63 sdcc-base: sdcc-cc sdcc-aslink
65 # Compiling and installing everything and runing test
66 # ---------------------------------------------------
68 $(MAKE) -f main.mk install
69 @for pkg in $(PKGS); do\
70 $(MAKE) -C $$pkg install ;\
74 $(MAKE) -f main.mk install
75 @for pkg in $(PKGS_TINI); do\
76 $(MAKE) -C $$pkg install ;\
78 $(MAKE) -C device/lib installDS390
82 # Deleting all the installed files
83 # --------------------------------
85 $(MAKE) -f main.mk uninstall
86 @for pkg in $(PKGS); do\
87 $(MAKE) -C $$pkg uninstall ;\
91 # Deleting all files created by building the program
92 # --------------------------------------------------
94 @echo "+ Cleaning root of the project..."
95 $(MAKE) -f clean.mk clean
96 @echo "+ Cleaning packages in their directories..."
97 for pkg in $(PKGS); do\
98 $(MAKE) PORTS="$(PORTS)" -C $$pkg clean ;\
102 # Deleting all files created by configuring or building the program
103 # -----------------------------------------------------------------
105 @echo "+ DistCleaning root of the project..."
106 $(MAKE) -f clean.mk distclean
107 @echo "+ DistCleaning packages using clean.mk..."
108 for pkg in $(PKGS); do\
109 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" distclean ;\
113 # Like clean but some files may still exist
114 # -----------------------------------------
116 $(MAKE) -f clean.mk mostlyclean
117 for pkg in $(PKGS); do\
118 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" mostlyclean ;\
122 # Deleting everything that can reconstructed by this Makefile. It deletes
123 # everything deleted by distclean plus files created by bison, stc.
124 # -----------------------------------------------------------------------
126 $(MAKE) -f clean.mk realclean
127 for pkg in $(PKGS); do\
128 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" realclean ;\
132 # Creating distribution
133 # ---------------------
135 @if [ -f devel ]; then\
136 rm -f devel; mkdist sdcc; touch devel;\
142 # Performing self-test
143 # --------------------
147 # Performing installation test
148 # ----------------------------
152 # Creating dependencies
153 # ---------------------
155 $(MAKE) -f main.mk dep
156 @for pkg in $(PKGS); do\
157 $(MAKE) -C $$pkg dep ;\
164 @if [ -f start ]; then \
166 `find . -newer start -type f -print` |\
167 gzip -9c >`date '+%m%d%H%M'`.tgz; \
169 echo "start file not found.\n"; \
174 'put(c)' -s $(STARTYEAR) *.cc *.h *.y *.l
177 # Remaking configuration
178 # ----------------------
179 configure: configure.in
182 main.mk: $(srcdir)/main_in.mk $(srcdir)/configure.in config.status
183 $(SHELL) ./config.status
187 makefiles: config.status
189 config.status: configure
190 $(SHELL) ./config.status --recheck
193 $(SHELL) ./config.status
198 @if [ -f devel ]; then\