px4-firmware/misc/pascal/Makefile

116 lines
2.8 KiB
Makefile

# ----------------------------------------------------------------------
# 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/*
# ----------------------------------------------------------------------