* as/link/lklibr.c: moved from as/link/z80/lklibr.c
[fw/sdcc] / as / link / z80 / Makefile.in
index 1c3367e7a8ff7dc6ab22506312aeb87647d39da3..0705970e0a7ef1e53f2754f024505ff61aab98a5 100644 (file)
@@ -3,41 +3,61 @@ srcdir       = @srcdir@
 top_builddir = @top_builddir@
 top_srcdir   = @top_srcdir@
 
-include $(top_builddir)Makefile.common
+include $(top_builddir)/Makefile.common
 
-OBJDIR = obj/$(EXT)
+OBJDIR = obj$(EXT)
 
-SLIBSRC        = NewAlloc.c
+ASXXLIB = $(srcdir)/../../asxxsrc
 
-SRC    = lkarea.c lkdata.c lkeval.c lkhead.c lkihx.c lklex.c \
-         lklibr.c lklist.c lkmain.c lkrloc.c lks19.c lksym.c \
-         lkgb.c lkgg.c \
-         ../lkstore.c
+ASXXLIBSRC = strcmpi.c
 
-OBJS   = $(SRC:%.c=$(OBJDIR)/%.o) 
-SLIBOBJS       = $(SLIBSRC:%.c=$(OBJDIR)/%.o) 
+LKLIB = $(srcdir)/..
 
-BINS   = $(BUILDDIR)link$(EXT)$(EXEEXT)
+LKLIBSRC = lkaomf51.c lkdata.c lkeval.c \
+           lkhead.c lklex.c lklibr.c lklist.c \
+           lknoice.c lkstore.c lksym.c
 
-CPPFLAGS+= -I..
-CFLAGS += $(CPPFLAGS) $(OPTS) -DINDEXLIB -DMLH_MAP -DUNIX -DSDK
-CFLAGS += -funsigned-char -DUNIX
-CFLAGS += -I$(top_builddir)as/$(PORT) -I$(SLIB) 
+SRC = lkmain.c lkarea.c lkihx.c \
+      lkrloc.c lks19.c lkgb.c lkgg.c
 
-LDFLAGS += -lm $(EXTRALIBS)
+LKSOURCES = $(SRC) $(LKLIBSRC:%.c=$(LKLIB)/%.c) $(ASXXLIBSRC:%.c=$(ASXXLIB)/%.c)
 
-all:   $(BINS)
+OBJS = $(SRC:%.c=$(OBJDIR)/%.o)
+LKOBJS = $(LKLIBSRC:%.c=$(OBJDIR)/%.o)
+ASXXLIBOBJS = $(ASXXLIBSRC:%.c=$(OBJDIR)/%.o)
+LKOBJECTS = $(OBJS) $(LKOBJS) $(ASXXLIBOBJS)
 
-$(BINS): $(OBJDIR) $(OBJS) $(SLIBOBJS)
-       $(CC) -g -o $(BINS) $(OBJS) $(SLIBOBJS) $(LDFLAGS)
+BINS = $(BUILDDIR)link$(EXT)$(EXEEXT)
 
-$(OBJDIR):
+CPPFLAGS += -I.. -I$(srcdir)/..
+CFLAGS += $(CPPFLAGS) $(OPTS) -DINDEXLIB -DMLH_MAP -DSDK
+CFLAGS += -funsigned-char -DUNIX
+CFLAGS += -I$(top_builddir)/as/$(PORT)
+
+LDFLAGS = @LDFLAGS@ -lm $(EXTRALIBS)
+
+all: $(BINS)
+
+$(BINS): $(LKOBJECTS)
+       $(CC) -g -o $(BINS) $(LKOBJECTS) $(LDFLAGS)
+
+# 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
+
+$(OBJDIR)/%.o: %.c $(OBJDIR)/.stamp
+       $(CC) -c $(CFLAGS) -o $@ $<
 
-$(OBJDIR)/%.o: %.c
+$(OBJDIR)/%.o: $(LKLIB)/%.c $(OBJDIR)/.stamp
        $(CC) -c $(CFLAGS) -o $@ $<
 
-$(OBJDIR)/%.o: $(SLIB)/%.c
+$(OBJDIR)/%.o: $(ASXXLIB)/%.c $(OBJDIR)/.stamp
        $(CC) -c $(CFLAGS) -o $@ $<
 
 _link-z80: