X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2FMakefile.in;h=b334928a0003272fd495e118d4d1248ecc831923;hb=bb226788dab3832b0ec0cda70874ce3fce4eebc6;hp=8dcdf7feac9e8f02d915ebefe4eea19befc06e4d;hpb=48ba82a9755eae5da6e24d1381ea3bcf72ebb9ef;p=fw%2Fsdcc diff --git a/src/Makefile.in b/src/Makefile.in index 8dcdf7fe..b334928a 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -2,9 +2,12 @@ # # -PRJDIR = .. +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +top_builddir = @top_builddir@ +VPATH = @srcdir@ -include $(PRJDIR)/Makefile.common +include $(top_builddir)/Makefile.common USE_ALT_LEX = 0 @@ -15,19 +18,22 @@ 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 = SDCCerr.o NewAlloc.o MySystem.o BuildCmd.o dbuf.o findme.o +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 \ SDCCicode.o SDCCbitv.o SDCCset.o SDCClabel.o \ SDCCBBlock.o SDCCloop.o SDCCcse.o SDCCcflow.o SDCCdflow.o \ SDCClrange.o SDCCptropt.o SDCCpeeph.o SDCCglue.o \ - asm.o SDCCmacro.o SDCCutil.o SDCCdebug.o cdbFile.o SDCCdwarf2.o + SDCCasm.o SDCCmacro.o SDCCutil.o SDCCdebug.o cdbFile.o SDCCdwarf2.o\ + SDCCerr.o SPECIAL = SDCCy.h ifeq ($(USE_ALT_LEX), 1) @@ -40,31 +46,31 @@ endif SLIBSOURCES = $(patsubst %.o,$(SLIB)/%.c,$(SLIBOBJS)) SOURCES = $(patsubst %.o,%.c,$(OBJECTS)) -TARGET = $(PRJDIR)/bin/sdcc$(EXEEXT) +TARGET = $(top_builddir)/bin/sdcc$(EXEEXT) # Compiling entire program or any subproject # ------------------------------------------ -all: checkconf $(TARGET) +all: checkconf version.h $(TARGET) $(PORT_LIBS): FORCE - $(MAKE) -C `dirname $@` - + $(MAKE) -C $(dir $@) + FORCE: -$(PRJDIR)/support/gc/libgc.a: - cd $(PRJDIR)/support/gc && $(MAKE) +$(top_builddir)/support/gc/libgc.a: + $(MAKE) -C $(top_builddir)/support/gc # Compiling and installing everything and runing test # --------------------------------------------------- install: all installdirs - $(INSTALL) $(TARGET) `echo $(bindir)/sdcc$(EXEEXT)|sed '$(transform)'` - $(STRIP) `echo $(bindir)/sdcc$(EXEEXT)|sed '$(transform)'` + $(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$(EXEEXT) + rm -f $(DESTDIR)$(bindir)/sdcc$(EXEEXT) # Performing self-test # -------------------- @@ -79,18 +85,22 @@ 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) $(SLIBSOURCES) $(SPECIAL) *.h $(PRJDIR)/*.h - $(CPP) $(CPPFLAGS) $(M_OR_MM) $(SOURCES) $(SLIBSOURCES) >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 @@ -117,6 +127,9 @@ SDCCy.c: SDCC.y SDCClex.c: SDCC.lex SDCCy.h $(LEX) -t $< >$@ +version.h: ../ChangeLog + $(AWK) -f $(srcdir)/version.awk $< > $@ + .y.c: rm -f $*.cc $*.h $(YACC) -d $< @@ -131,8 +144,8 @@ SDCClex.c: SDCC.lex SDCCy.h # 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