037e89de2ecd1e1f16a58152b3c58df3664cf0de
[fw/sdcc] / as / link / z80 / Makefile.in
1 VPATH        = @srcdir@
2 srcdir       = @srcdir@
3 top_builddir = @top_builddir@
4 top_srcdir   = @top_srcdir@
5
6 include $(top_builddir)/Makefile.common
7
8 OBJDIR = obj$(EXT)
9
10 ASXXLIB = $(srcdir)/../../asxxsrc
11
12 ASXXLIBSRC = strcmpi.c
13
14 LKLIB = $(srcdir)/..
15
16 LKLIBSRC = lkaomf51.c lkdata.c lkeval.c \
17            lkhead.c lklex.c lklist.c \
18            lknoice.c lkstore.c lksym.c
19
20 SRC = lkmain.c lkarea.c lkihx.c \
21       lklibr.c lkrloc.c lks19.c \
22       lkgb.c lkgg.c
23
24 LKSOURCES = $(SRC) $(LKLIBSRC:%.c=$(LKLIB)/%.c) $(ASXXLIBSRC:%.c=$(ASXXLIB)/%.c)
25
26 OBJS = $(SRC:%.c=$(OBJDIR)/%.o)
27 LKOBJS = $(LKLIBSRC:%.c=$(OBJDIR)/%.o)
28 ASXXLIBOBJS = $(ASXXLIBSRC:%.c=$(OBJDIR)/%.o)
29 LKOBJECTS = $(OBJS) $(LKOBJS) $(ASXXLIBOBJS)
30
31 BINS = $(BUILDDIR)link$(EXT)$(EXEEXT)
32
33 CPPFLAGS += -I.. -I$(srcdir)/..
34 CFLAGS += $(CPPFLAGS) $(OPTS) -DINDEXLIB -DMLH_MAP -DSDK
35 CFLAGS += -funsigned-char -DUNIX
36 CFLAGS += -I$(top_builddir)/as/$(PORT)
37
38 LDFLAGS = @LDFLAGS@ -lm $(EXTRALIBS)
39
40 all: $(BINS)
41
42 $(BINS): $(LKOBJECTS)
43         $(CC) -g -o $(BINS) $(LKOBJECTS) $(LDFLAGS)
44
45 # We need a '.stamp'-file in $(OBJDIR), because the time stamp
46 # of $(OBJDIR) itself is always updated, when a file in $(OBJDIR)
47 # is updated. A rule like
48 #       $(OBJDIR)/anyfile: $(OBJDIR)
49 # will always force a remake (at least on Linux ext2).
50
51 $(OBJDIR)/.stamp:
52         mkdir -p $(OBJDIR)
53         touch $(OBJDIR)/.stamp
54
55 $(OBJDIR)/%.o: %.c $(OBJDIR)/.stamp
56         $(CC) -c $(CFLAGS) -o $@ $<
57
58 $(OBJDIR)/%.o: $(LKLIB)/%.c $(OBJDIR)/.stamp
59         $(CC) -c $(CFLAGS) -o $@ $<
60
61 $(OBJDIR)/%.o: $(ASXXLIB)/%.c $(OBJDIR)/.stamp
62         $(CC) -c $(CFLAGS) -o $@ $<
63
64 _link-z80:
65         $(MAKE) EXT=-z80$(E) PORT=z80
66
67 _link-gbz80:
68         $(MAKE) EXT=-gbz80$(E) OPTS=-DGAMEBOY PORT=z80
69
70 include $(srcdir)/clean.mk