X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2FMakefile.in;h=b334928a0003272fd495e118d4d1248ecc831923;hb=80972b2e54c9b88f11c27b878874fd2a6a681391;hp=bcdf6eccead99c002478967bc50bb64f2a05a7ac;hpb=b09af35f2f1cde7649d3ac4a6f5d2af6d97895a0;p=fw%2Fsdcc diff --git a/src/Makefile.in b/src/Makefile.in index bcdf6ecc..b334928a 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -2,73 +2,75 @@ # # -# Version -VERSION = @VERSION@ -VERSIONHI = @VERSIONHI@ -VERSIONLO = @VERSIONLO@ -VERSIONP = @VERSIONP@ - -# Programs -SHELL = /bin/sh -CC = @CC@ -CPP = @CPP@ -RANLIB = @RANLIB@ -INSTALL = @INSTALL@ -YACC = @YACC@ -LEX = @LEX@ -AWK = @AWK@ -# Directories -PRJDIR = .. - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -bindir = @bindir@ -libdir = @libdir@ -datadir = @datadir@ -includedir = @includedir@ -mandir = @mandir@ -man1dir = $(mandir)/man1 -man2dir = $(mandir)/man2 -infodir = @infodir@ -srcdir = @srcdir@ - -# Flags -DEFS = $(subs -DHAVE_CONFIG_H,,@DEFS@) -CPPFLAGS = @CPPFLAGS@ -I$(PRJDIR) -I$(PRJDIR)/support -CFLAGS = @CFLAGS@ -Wall -M_OR_MM = @M_OR_MM@ -LIBS = -lgc @LIBS@ -LIBDIRS = -L$(PRJDIR)/support/gc - -OBJECTS = SDCCy.o SDCClex.o SDCCerr.o SDCChasht.o SDCCmain.o \ +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +top_builddir = @top_builddir@ +VPATH = @srcdir@ + +include $(top_builddir)/Makefile.common + +USE_ALT_LEX = 0 + +PORTS = $(shell cat ../ports.build) +ALLPORTS = $(shell cat ../ports.all) +PORT_LIBS = $(PORTS:%=%/port.a) + +LIBS = -lm @LIBS@ + +#CFLAGS += -Werror +CPPFLAGS += -I$(srcdir) +LDFLAGS = @LDFLAGS@ + +ifdef SDCC_SUB_VERSION +CFLAGS += -DSDCC_SUB_VERSION_STR=\"$(SDCC_SUB_VERSION)\" +endif + +SLIBOBJS = NewAlloc.o MySystem.o BuildCmd.o dbuf.o dbuf_string.o findme.o + +OBJECTS = SDCCy.o SDCChasht.o SDCCmain.o \ SDCCsymt.o SDCCopt.o SDCCast.o SDCCmem.o SDCCval.o \ - SDCCralloc.o SDCCicode.o SDCCbitv.o SDCCset.o SDCClabel.o \ + SDCCicode.o SDCCbitv.o SDCCset.o SDCClabel.o \ SDCCBBlock.o SDCCloop.o SDCCcse.o SDCCcflow.o SDCCdflow.o \ - SDCClrange.o SDCCptropt.o SDCCgen51.o SDCCpeeph.o SDCCglue.o spawn.o + SDCClrange.o SDCCptropt.o SDCCpeeph.o SDCCglue.o \ + SDCCasm.o SDCCmacro.o SDCCutil.o SDCCdebug.o cdbFile.o SDCCdwarf2.o\ + SDCCerr.o + +SPECIAL = SDCCy.h +ifeq ($(USE_ALT_LEX), 1) +OBJECTS += altlex.o +SPECIAL += reswords.h +else +OBJECTS += SDCClex.o +endif + +SLIBSOURCES = $(patsubst %.o,$(SLIB)/%.c,$(SLIBOBJS)) SOURCES = $(patsubst %.o,%.c,$(OBJECTS)) -TARGET = $(PRJDIR)/bin/sdcc - +TARGET = $(top_builddir)/bin/sdcc$(EXEEXT) # Compiling entire program or any subproject # ------------------------------------------ -all: checkconf $(PRJDIR)/support/gc/libgc.a $(TARGET) +all: checkconf version.h $(TARGET) -$(PRJDIR)/support/gc/libgc.a: - cd $(PRJDIR)/support/gc && $(MAKE) +$(PORT_LIBS): FORCE + $(MAKE) -C $(dir $@) +FORCE: + +$(top_builddir)/support/gc/libgc.a: + $(MAKE) -C $(top_builddir)/support/gc # Compiling and installing everything and runing test # --------------------------------------------------- install: all installdirs - $(INSTALL) -s $(TARGET) $(bindir)/sdcc + $(INSTALL) $(TARGET) `echo $(DESTDIR)$(bindir)/sdcc$(EXEEXT)|sed '$(transform)'` + $(STRIP) `echo $(DESTDIR)$(bindir)/sdcc$(EXEEXT)|sed '$(transform)'` # Deleting all the installed files # -------------------------------- uninstall: - rm -f $(bindir)/sdcc - + rm -f $(DESTDIR)$(bindir)/sdcc$(EXEEXT) # Performing self-test # -------------------- @@ -83,36 +85,50 @@ installcheck: # Creating installation directories # --------------------------------- installdirs: - $(INSTALL) -d $(bindir) + $(INSTALL) -d $(DESTDIR)$(bindir) # Creating dependencies # --------------------- -dep: Makefile.dep +dep: version.h Makefile.dep -Makefile.dep: $(SOURCES) *.h $(PRJDIR)/*.h - $(CPP) $(CPPFLAGS) $(M_OR_MM) $(SOURCES) >Makefile.dep +Makefile.dep: version.h $(SOURCES) $(SLIBSOURCES) $(SPECIAL) + $(CPP) $(CPPFLAGS) $(M_OR_MM) $(filter %.c,$^) >Makefile.dep -include Makefile.dep -include clean.mk +# don't include Makefile.dep for the listed targets: +ifeq "$(findstring $(MAKECMDGOALS),uninstall check installcheck installdirs checkconf \ + clean distclean mostlyclean realclean)" "" + -include Makefile.dep +endif +include $(srcdir)/clean.mk # My rules # -------- -$(TARGET): $(OBJECTS) - $(CC) -o $@ $(OBJECTS) $(LIBDIRS) $(LIBS) +$(TARGET): $(SLIBOBJS) $(OBJECTS) $(PORT_LIBS) + $(CC) $(LDFLAGS) -o $@ $(SLIBOBJS) $(OBJECTS) $(PORT_LIBS) $(LIBDIRS) $(LIBS) .c.o: $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ +$(SLIBOBJS):%.o:$(SLIB)/%.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ + +reswords.h: reswords.gperf Makefile + gperf -o -k1,2,4 -t -C -N is_reserved_word $< > $@ + +altlex.o: altlex.c SDCCy.h reswords.h + +SDCCy.h: SDCCy.c + SDCCy.c: SDCC.y $(YACC) -d -v -o $@ $< SDCClex.c: SDCC.lex SDCCy.h $(LEX) -t $< >$@ -SDCCpeeph.rul: SDCCpeeph.def - $(AWK) -f SDCCpeeph.awk SDCCpeeph.def > SDCCpeeph.rul +version.h: ../ChangeLog + $(AWK) -f $(srcdir)/version.awk $< > $@ .y.c: rm -f $*.cc $*.h @@ -128,10 +144,9 @@ SDCCpeeph.rul: SDCCpeeph.def # Remaking configuration # ---------------------- checkconf: - @if [ -f $(PRJDIR)/devel ]; then\ - $(MAKE) -f $(srcdir)/conf.mk srcdir="$(srcdir)" PRJDIR="$(PRJDIR)" \ + @if [ -f $(top_builddir)/devel ]; then\ + $(MAKE) -f $(srcdir)/conf.mk srcdir="$(srcdir)" top_builddir="$(top_builddir)" \ freshconf;\ fi # End of main_in.mk/main.mk -