9 SDCC_MISC = debugger/mcs51 sim/ucsim binutils-2.9.5.0.13
10 SDCC_LIBS = support/cpp
11 SDCC_ASLINK = as/mcs51 as link
13 PKGS = $(SDCC_MISC) $(SDCC_LIBS) $(SDCC_ASLINK) \
14 src device/include device/lib
20 # Compiling entire program or any subproject
21 # ------------------------------------------
25 ifeq ($(CROSS_LIBGC),1)
26 $(MAKE) -C support/gc -f Makefile.cross
30 for lib in $(SDCC_LIBS); do $(MAKE) -C $$lib; done
36 for as in $(SDCC_ASLINK); do $(MAKE) -C $$as; done
39 for misc in $(SDCC_MISC); do $(MAKE) -C $$misc; done
42 $(MAKE) -C device/include
45 sdcc: sdcc-cc sdcc-aslink sdcc-misc sdcc-device
46 $(MAKE) -f main.mk all
48 # Some interesting sub rules
49 sdcc-bin: sdcc-cc sdcc-aslink sdcc-misc
51 sdcc-base: sdcc-cc sdcc-aslink
53 # Compiling and installing everything and runing test
54 # ---------------------------------------------------
56 $(MAKE) -f main.mk install
57 @for pkg in $(PKGS); do\
58 $(MAKE) -C $$pkg install ;\
62 # Deleting all the installed files
63 # --------------------------------
65 $(MAKE) -f main.mk uninstall
66 @for pkg in $(PKGS); do\
67 $(MAKE) -C $$pkg uninstall ;\
71 # Deleting all files created by building the program
72 # --------------------------------------------------
74 @echo "+ Cleaning root of the project..."
75 $(MAKE) -f clean.mk clean
76 @echo "+ Cleaning packages in their directories..."
77 for pkg in $(PKGS); do\
78 $(MAKE) PORTS="$(PORTS)" -C $$pkg clean ;\
82 # Deleting all files created by configuring or building the program
83 # -----------------------------------------------------------------
85 @echo "+ DistCleaning root of the project..."
86 $(MAKE) -f clean.mk distclean
87 @echo "+ DistCleaning packages using clean.mk..."
88 for pkg in $(PKGS); do\
89 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" distclean ;\
93 # Like clean but some files may still exist
94 # -----------------------------------------
96 $(MAKE) -f clean.mk mostlyclean
97 for pkg in $(PKGS); do\
98 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" mostlyclean ;\
102 # Deleting everything that can reconstructed by this Makefile. It deletes
103 # everything deleted by distclean plus files created by bison, stc.
104 # -----------------------------------------------------------------------
106 $(MAKE) -f clean.mk realclean
107 for pkg in $(PKGS); do\
108 $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" realclean ;\
112 # Creating distribution
113 # ---------------------
115 @if [ -f devel ]; then\
116 rm -f devel; mkdist sdcc; touch devel;\
122 # Performing self-test
123 # --------------------
127 # Performing installation test
128 # ----------------------------
132 # Creating dependencies
133 # ---------------------
135 $(MAKE) -f main.mk dep
136 @for pkg in $(PKGS); do\
137 $(MAKE) -C $$pkg dep ;\
144 @if [ -f start ]; then \
146 `find . -newer start -type f -print` |\
147 gzip -9c >`date '+%m%d%H%M'`.tgz; \
149 echo "start file not found.\n"; \
154 'put(c)' -s $(STARTYEAR) *.cc *.h *.y *.l
157 # Remaking configuration
158 # ----------------------
159 configure: configure.in
162 main.mk: $(srcdir)/main_in.mk $(srcdir)/configure.in config.status
163 $(SHELL) ./config.status
167 makefiles: config.status
169 config.status: configure
170 $(SHELL) ./config.status --recheck
173 $(SHELL) ./config.status
178 @if [ -f devel ]; then\