112 lines
2.3 KiB
Makefile
Executable File
112 lines
2.3 KiB
Makefile
Executable File
CROSS=Y
|
|
|
|
CROSSBINDIR_IS_Y=m68k-atari-mint-
|
|
CROSSBINDIR_IS_N=
|
|
|
|
CROSSBINDIR=$(CROSSBINDIR_IS_$(CROSS))
|
|
|
|
UNAME := $(shell uname)
|
|
ifeq ($(CROSS), Y)
|
|
ifeq ($(UNAME),Linux)
|
|
PREFIX=m68k-atari-mint
|
|
HATARI=hatari
|
|
else
|
|
PREFIX=m68k-atari-mint
|
|
HATARI=/usr/local/bin/hatari
|
|
endif
|
|
else
|
|
PREFIX=/usr
|
|
endif
|
|
|
|
DEPEND=depend
|
|
TOPDIR = ../..
|
|
|
|
#LIBCMINI=$(TOPDIR)/../libcmini/libcmini
|
|
|
|
#INCLUDE=-I$(LIBCMINI)/include -nostdlib -I$(TOPDIR)/include
|
|
INCLUDE=-I$(TOPDIR)/include
|
|
|
|
LIBS=-L$(TOPDIR)/firebee -lbas
|
|
CC=$(PREFIX)/bin/gcc
|
|
|
|
CC=$(CROSSBINDIR)gcc
|
|
STRIP=$(CROSSBINDIR)strip
|
|
STACK=$(CROSSBINDIR)stack
|
|
|
|
APP=fpga_test.prg
|
|
TEST_APP=$(APP)
|
|
|
|
CFLAGS=\
|
|
-O0\
|
|
-g\
|
|
-Wl,-Map,mapfile\
|
|
-Wl,--defsym -Wl,__MBAR=0xff000000\
|
|
-Wl,--defsym -Wl,__MMUBAR=0xff040000\
|
|
-Wl,--defsym -Wl,__FPGA_JTAG_LOADED=0xff101000\
|
|
-Wl,--defsym -Wl,__FPGA_JTAG_VALID=0xff101004\
|
|
-Wl,--defsym -Wl,__VRAM=0x60000000\
|
|
-Wall
|
|
|
|
SRCDIR=sources
|
|
INCDIR=include
|
|
INCLUDE+=-I$(INCDIR)
|
|
|
|
CSRCS=\
|
|
$(SRCDIR)/fpga_test.c \
|
|
$(SRCDIR)/ser_printf.c
|
|
|
|
ASRCS=
|
|
|
|
COBJS=$(patsubst $(SRCDIR)/%.o,%.o,$(patsubst %.c,%.o,$(CSRCS)))
|
|
AOBJS=$(patsubst $(SRCDIR)/%.o,%.o,$(patsubst %.S,%.o,$(ASRCS)))
|
|
OBJS=$(COBJS) $(AOBJS)
|
|
|
|
TRGTDIRS=./m5475
|
|
OBJDIRS=$(patsubst %,%/objs,$(TRGTDIRS))
|
|
|
|
#
|
|
# multilib flags. These must match m68k-atari-mint-gcc -print-multi-lib output
|
|
#
|
|
m5475/$(APP):CFLAGS += -mcpu=5475
|
|
m5475/mshort/$(APP): CFLAGS += -mcpu=5475 -mshort
|
|
|
|
all:$(patsubst %,%/$(APP),$(TRGTDIRS))
|
|
#
|
|
# generate pattern rules for multilib object files.
|
|
#
|
|
define CC_TEMPLATE
|
|
$(1)/objs/%.o:$(SRCDIR)/%.c
|
|
@echo CC $$<
|
|
@$(CC) $$(CFLAGS) $(INCLUDE) -c $$< -o $$@
|
|
|
|
$(1)/objs/%.o:$(SRCDIR)/%.S
|
|
@echo CC $$<
|
|
@$(CC) $$(CFLAGS) $(INCLUDE) -c $$< -o $$@
|
|
|
|
$(1)_OBJS=$(patsubst %,$(1)/objs/%,$(OBJS))
|
|
$(1)/$(APP): $$($(1)_OBJS)
|
|
@echo CC $$@
|
|
@$(CC) $$(CFLAGS) -o $$@ $$($(1)_OBJS) -lc $(LIBS)
|
|
#$(STRIP) $$@
|
|
endef
|
|
$(foreach DIR,$(TRGTDIRS),$(eval $(call CC_TEMPLATE,$(DIR))))
|
|
|
|
$(DEPEND): $(ASRCS) $(CSRCS)
|
|
@-rm -f $(DEPEND)
|
|
@for d in $(TRGTDIRS);\
|
|
do $(CC) $(CFLAGS) $(INCLUDE) -M $(ASRCS) $(CSRCS) | sed -e "s#^\(.*\).o:#$$d/objs/\1.o:#" >> $(DEPEND); \
|
|
done
|
|
|
|
|
|
clean:
|
|
@rm -f $(patsubst %,%/objs/*.o,$(TRGTDIRS)) $(patsubst %,%/$(APP),$(TRGTDIRS))
|
|
@rm -f $(DEPEND) mapfile
|
|
|
|
.PHONY: printvars
|
|
printvars:
|
|
@$(foreach V,$(.VARIABLES), $(if $(filter-out environment% default automatic, $(origin $V)),$(warning $V=$($V))))
|
|
|
|
ifneq (clean,$(MAKECMDGOALS))
|
|
-include $(DEPEND)
|
|
endif
|