X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=as%2Fz80%2FMakefile;h=beb428f466592b7ebfcaeb1030c62860fc1ab5ae;hb=72b7e8dadd92279596c0f56649775fc056acf449;hp=25fce80053d5e3d1c9c9efdbc4e54e9b1dbab576;hpb=6a01e2d7d2353eb11e862f332bc2df43a967b9fa;p=fw%2Fsdcc diff --git a/as/z80/Makefile b/as/z80/Makefile index 25fce800..beb428f4 100644 --- a/as/z80/Makefile +++ b/as/z80/Makefile @@ -1,22 +1,60 @@ -TOPDIR = ../.. +PRJDIR = ../.. -include $(TOPDIR)/Makefile.common +include $(PRJDIR)/Makefile.common -SRC = . -OBJS = asdata.o asexpr.o aslex.o aslist.o asmain.o asout.o \ - assubr.o assym.o z80adr.o z80ext.o z80mch.o z80pst.o -BINS = as$E +OBJDIR = obj/$(EXT) -CFLAGS += -funsigned-char -ggdb -LDFLAGS += -lm +SDC = . -all: $(BINS) +SLIBSRC = NewAlloc.c -$(BINS): $(OBJS) - $(CC) $(LDFLAGS) -o $@ $(OBJS) +SRC = asdata.c asexpr.c aslex.c aslist.c asmain.c asout.c \ + assubr.c assym.c z80adr.c z80ext.c z80mch.c z80pst.c -%.o: $(SRC)/%.c - $(CC) -c $(CFLAGS) -I$(SRC) -o $@ $< +OBJS = $(SRC:%.c=$(OBJDIR)/%.o) +SLIBOBJS = $(SLIBSRC:%.c=$(OBJDIR)/%.o) -clean: - rm -f $(OBJS) $(BINS) +BINS = $(BUILDDIR)as$(EXT)$(EXEEXT) + +CFLAGS += $(CPPFLAGS) $(OPTS) -I. -DINDEXLIB -DMLH_MAP -DUNIX -DSDK +CFLAGS += -funsigned-char +CFLAGS += -I$(SLIB) + +LDFLAGS += -lm $(EXTRALIBS) + +all: dep $(BINS) + +dep: Makefile.dep + +Makefile.dep: $(SRC) *.h + $(CPP) $(CPPFLAGS) $(M_OR_MM) $(SRC) > Makefile.dep + +include Makefile.dep + +# We need a '.stamp'-file in $(OBJDIR), because the time stamp +# of $(OBJDIR) itself is always updated, when a file in $(OBJDIR) +# is updated. A rule like +# $(OBJDIR)/anyfile: $(OBJDIR) +# will always force a remake (at least on Linux ext2). + +$(OBJDIR)/.stamp: + mkdir -p $(OBJDIR) + touch $(OBJDIR)/.stamp + +$(BINS): $(OBJS) $(SLIBOBJS) + $(CC) -o $(BINS) $(OBJS) $(SLIBOBJS) $(LDFLAGS) + + +$(OBJDIR)/%.o: %.c $(OBJDIR)/.stamp + $(CC) -c $(CFLAGS) -o $@ $< + +$(OBJDIR)/%.o: $(SLIB)/%.c $(OBJDIR)/.stamp + $(CC) -c $(CFLAGS) -o $@ $< + +_as-z80: + $(MAKE) EXT=-z80$(E) + +_as-gbz80: + $(MAKE) EXT=-gbz80$(E) OPTS=-DGAMEBOY + +include clean.mk