You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
2.8 KiB
115 lines
2.8 KiB
# ---------------------------------------------------------------------- |
|
# Makefile |
|
# ---------------------------------------------------------------------- |
|
|
|
# ---------------------------------------------------------------------- |
|
# Directories |
|
|
|
PASCAL = ${shell pwd} |
|
|
|
include $(PASCAL)/Make.config |
|
include $(PASCAL)/Make.defs |
|
|
|
INCDIR = $(PASCAL)/include |
|
LIBDIR = $(PASCAL)/lib |
|
BINDIR-$(CONFIG_INSN16) = $(PASCAL)/bin16 |
|
BINDIR-$(CONFIG_INSN32) = $(PASCAL)/bin32 |
|
LIBPOFFDIR = $(PASCAL)/libpoff |
|
LIBPASDIR = $(PASCAL)/libpas |
|
PASDIR = $(PASCAL)/pascal |
|
PLINKDIR = $(PASCAL)/plink |
|
TESTDIR = $(PASCAL)/tests |
|
INSN-$(CONFIG_INSN16) = $(PASCAL)/insn16 |
|
INSN-$(CONFIG_INSN32) = $(PASCAL)/insn32 |
|
LIBINSNDIR = $(INSN-y)/libinsn |
|
|
|
# ---------------------------------------------------------------------- |
|
# Objects and targets |
|
|
|
LIBS = $(LIBDIR)/libpoff.a $(LIBDIR)/libpas.a \ |
|
$(LIBDIR)/libinsn.a |
|
|
|
all: pascal popt regm plink plist prun |
|
.PHONY: all config.h libpoff.a libpas.a libinsn.a pascal popt regm plink plist prun clean deep-clean |
|
|
|
$(INCDIR)/config.h: Make.config |
|
@$(MAKE) -f Make.config.h |
|
|
|
config.h: $(INCDIR)/config.h |
|
|
|
$(LIBDIR): |
|
mkdir $(LIBDIR) |
|
|
|
$(LIBDIR)/libpoff.a: $(LIBDIR) config.h |
|
@$(MAKE) -C $(LIBPOFFDIR) libpoff.a |
|
|
|
libpoff.a: $(LIBDIR)/libpoff.a |
|
|
|
$(LIBDIR)/libpas.a: $(LIBDIR) config.h |
|
@$(MAKE) -C $(LIBPASDIR) libpas.a |
|
|
|
libpas.a: $(LIBDIR)/libpas.a |
|
|
|
$(LIBDIR)/libinsn.a: $(LIBDIR) config.h |
|
@$(MAKE) -C $(LIBINSNDIR) libinsn.a |
|
|
|
libinsn.a: $(LIBDIR)/libinsn.a |
|
|
|
$(BINDIR-y): |
|
mkdir $(BINDIR-y) |
|
|
|
$(BINDIR-y)/pascal: $(BINDIR-y) config.h $(LIBS) |
|
@$(MAKE) -C $(PASDIR) |
|
|
|
pascal: $(BINDIR-y)/pascal |
|
|
|
$(BINDIR-y)/popt: $(BINDIR-y) config.h $(LIBS) |
|
@$(MAKE) -C $(INSN-y) popt |
|
|
|
popt: $(BINDIR-y)/popt |
|
|
|
$(BINDIR-y)/regm: $(BINDIR-y) config.h $(LIBS) |
|
ifeq ($(CONFIG_REGM),y) |
|
@$(MAKE) -C $(INSN-y) regm |
|
endif |
|
|
|
regm: $(BINDIR-y)/regm |
|
|
|
$(BINDIR-y)/plink: $(BINDIR-y) config.h $(LIBS) |
|
@$(MAKE) -C $(PLINKDIR) |
|
|
|
plink: $(BINDIR-y)/plink |
|
|
|
$(BINDIR-y)/prun: $(BINDIR-y) config.h $(LIBS) |
|
@$(MAKE) -C $(INSN-y) prun |
|
|
|
prun: $(BINDIR-y)/prun |
|
|
|
$(BINDIR-y)/plist: $(BINDIR-y) config.h $(LIBS) |
|
@$(MAKE) -C $(INSN-y) plist |
|
|
|
plist: $(BINDIR-y)/plist |
|
|
|
clean: |
|
$(RM) -f core *~ |
|
$(RM) -rf $(LIBDIR) |
|
$(RM) -rf bin16 bin32 |
|
$(MAKE) -f Make.config.h clean |
|
$(MAKE) -C $(LIBPOFFDIR) clean |
|
$(MAKE) -C $(LIBPASDIR) clean |
|
$(MAKE) -C $(PASDIR) clean |
|
$(MAKE) -C $(PLINKDIR) clean |
|
$(MAKE) -C $(INSN-y) clean |
|
find . -name \*~ -exec rm -f {} \; |
|
find tests -name "*.err" -exec rm -f {} \; |
|
find tests -name "*.lst" -exec rm -f {} \; |
|
find tests -name "*.pex" -exec rm -f {} \; |
|
find tests -name "*.o1" -exec rm -f {} \; |
|
find tests -name "*.o" -exec rm -f {} \; |
|
|
|
deep-clean: clean |
|
rm -f .config include/config.h Make.config |
|
$(RM) bin16/* |
|
$(RM) bin32/* |
|
|
|
# ----------------------------------------------------------------------
|
|
|