633601412fb677e28ad8e11544ce8c06271471d3
[fw/sdcc] / as / 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 assym.c aslex.c
13
14 SRC = asdata.c asexpr.c aslist.c asmain.c asout.c \
15       assubr.c z80adr.c z80ext.c z80mch.c z80pst.c
16
17 ASSOURCES = $(SRC) $(ASXXLIBSRC:%.c=$(ASXXLIB)/%.c)
18
19 ASXXLIBOBJS = $(ASXXLIBSRC:%.c=$(OBJDIR)/%.o)
20
21 OBJS = $(SRC:%.c=$(OBJDIR)/%.o)
22
23 ASOBJECTS = $(OBJS) $(ASXXLIBOBJS)
24
25 BINS = $(BUILDDIR)/as$(EXT)$(EXEEXT)
26
27 CFLAGS += $(CPPFLAGS) $(OPTS) -I. -DINDEXLIB -DMLH_MAP -DUNIX -DSDK
28 CFLAGS += -funsigned-char
29
30 LDFLAGS = @LDFLAGS@ -lm $(EXTRALIBS)
31
32 all: dep $(BINS)
33
34 dep: Makefile.dep
35
36 Makefile.dep: $(ASSOURCES) $(srcdir)/*.h
37         $(CPP) $(CPPFLAGS) $(M_OR_MM) $(filter %.c,$^) > Makefile.dep
38
39 ifeq "$(findstring $(MAKECMDGOALS),uninstall check installcheck installdirs \
40                                    clean distclean mostlyclean realclean)" ""
41   -include Makefile.dep
42 endif
43
44 # We need a '.stamp'-file in $(OBJDIR), because the time stamp
45 # of $(OBJDIR) itself is always updated, when a file in $(OBJDIR)
46 # is updated. A rule like
47 #       $(OBJDIR)/anyfile: $(OBJDIR)
48 # will always force a remake (at least on Linux ext2).
49
50 $(OBJDIR)/.stamp:
51         mkdir -p $(OBJDIR)
52         touch $(OBJDIR)/.stamp
53
54 $(BINS): $(ASOBJECTS)
55         $(CC) -o $(BINS) $(ASOBJECTS) $(LDFLAGS)
56
57 $(OBJDIR)/%.o: %.c $(OBJDIR)/.stamp
58         $(CC) -c $(CFLAGS) -o $@ $<
59
60 $(OBJDIR)/%.o: $(ASXXLIB)/%.c $(OBJDIR)/.stamp
61         $(CC) -c $(CFLAGS) -o $@ $<
62
63 _as-z80:
64         $(MAKE) EXT=-z80$(E)
65
66 _as-gbz80:
67         $(MAKE) EXT=-gbz80$(E) OPTS=-DGAMEBOY
68
69 include $(srcdir)/clean.mk