7 VERSIONHI = @VERSIONHI@
8 VERSIONLO = @VERSIONLO@
24 exec_prefix = @exec_prefix@
28 includedir = @includedir@
30 man1dir = $(mandir)/man1
31 man2dir = $(mandir)/man2
36 DEFS = $(subs -DHAVE_CONFIG_H,,@DEFS@)
37 CPPFLAGS = @CPPFLAGS@ -I$(PRJDIR) -I$(PRJDIR)/support
38 CFLAGS = @CFLAGS@ -Wall
41 LIBDIRS = -L$(PRJDIR)/support/gc
43 OBJECTS = SDCCy.o SDCClex.o SDCCerr.o SDCChasht.o SDCCmain.o \
44 SDCCsymt.o SDCCopt.o SDCCast.o SDCCmem.o SDCCval.o \
45 SDCCralloc.o SDCCicode.o SDCCbitv.o SDCCset.o SDCClabel.o \
46 SDCCBBlock.o SDCCloop.o SDCCcse.o SDCCcflow.o SDCCdflow.o \
47 SDCClrange.o SDCCptropt.o SDCCgen51.o SDCCpeeph.o SDCCglue.o spawn.o
48 SOURCES = $(patsubst %.o,%.c,$(OBJECTS))
50 TARGET = $(PRJDIR)/bin/sdcc
53 # Compiling entire program or any subproject
54 # ------------------------------------------
55 all: checkconf $(PRJDIR)/support/gc/libgc.a $(TARGET)
57 $(PRJDIR)/support/gc/libgc.a:
58 cd $(PRJDIR)/support/gc && $(MAKE)
61 # Compiling and installing everything and runing test
62 # ---------------------------------------------------
63 install: all installdirs
64 $(INSTALL) -s $(TARGET) $(bindir)/sdcc
67 # Deleting all the installed files
68 # --------------------------------
73 # Performing self-test
74 # --------------------
78 # Performing installation test
79 # ----------------------------
83 # Creating installation directories
84 # ---------------------------------
86 $(INSTALL) -d $(bindir)
89 # Creating dependencies
90 # ---------------------
93 Makefile.dep: $(SOURCES) *.h $(PRJDIR)/*.h
94 $(CPP) $(CPPFLAGS) $(M_OR_MM) $(SOURCES) >Makefile.dep
102 $(TARGET): $(OBJECTS)
103 $(CC) -o $@ $(OBJECTS) $(LIBDIRS) $(LIBS)
106 $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
109 $(YACC) -d -v -o $@ $<
111 SDCClex.c: SDCC.lex SDCCy.h
114 SDCCpeeph.rul: SDCCpeeph.def
115 $(AWK) -f SDCCpeeph.awk SDCCpeeph.def > SDCCpeeph.rul
128 # Remaking configuration
129 # ----------------------
131 @if [ -f $(PRJDIR)/devel ]; then\
132 $(MAKE) -f $(srcdir)/conf.mk srcdir="$(srcdir)" PRJDIR="$(PRJDIR)" \
136 # End of main_in.mk/main.mk