#---------------
include ../Makefile.brecis
#---------------
# For i386 compilation, remove include above, add LD below.
# LD = gcc
#---------------
# CFLAGS += -save-temps
# CFLAGS += -ggdb
# LDFLAGS += -v
# CFLAGS += -p
# CFLAGS += -g
# LDFLAGS += -g
#---------------
TOPDIR := $(shell cd ../..; pwd)
#---------------
# PROG	?= arguments
# PROG	?= fdtest
# PROG	?= float
# PROG	?= fopen
# PROG	?= inetdtest
# PROG	?= init
# PROG	?= malloctest1
# PROG	?= malloctest2
# PROG	?= malloctest3
# PROG	?= malloctest4
# PROG	?= mmaptest
# PROG	?= output
# PROG	?= setjmp
# PROG	?= sigchld
# PROG	?= signal
# PROG	?= stack
# PROG	?= stat
# PROG 	?= timetest
# APROG	?= MOVF
# CXXPROG	?= cpp-test1
# CXXPROG	?= cpp-test2
#---------------
PROG	?= ledflash
# CFLAGS += -funsigned-char -DLANGUAGE_C
#---------------
ifneq ($(origin PROG), undefined)
  CSRCS = ${PROG}.c
endif
ifneq ($(origin CXXPROG), undefined)
  CXXSRCS = ${CXXPROG}.cpp
endif
ifneq ($(origin APROG), undefined)
  ASRCS = ${APROG}.S
endif
#---------------
COBJS	= ${CSRCS:.c=.o}
CXXOBJS	= ${CXXSRCS:.cpp=.o}
AOBJS	= ${ASRCS:.S=.o}
#---------------
all:	${PROG} ${CXXPROG} ${APROG}
#---------------
${PROG}: ${COBJS}
# Following for a C program:
	${LD} $(LDFLAGS) -o ${PROG} ${LIBS} ${COBJS} ${LDADD} -lgcc
#---------------
${CXXPROG}: ${CXXOBJS}
# Following for a C++ program:
	${CXX} $(LDFLAGS) -o ${CXXPROG} ${LIBS} ${CXXOBJS} ${LDADD} -lgcc
#---------------
${APROG}: ${AOBJS}
# One of following for a Assembler program:
#	${LD} -o ${APROG} ${AOBJS}
	mips-ld -q -o ${APROG} ${AOBJS}
#---------------
${COBJS}: ${CSRCS}
#---------------
${CXXOBJS}: ${CXXSRCS}
#---------------
${AOBJS}: ${ASRCS}
#---------------
clean:
	rm -f *.o *.objdump ${PROG} ${PROG}.elf ${PROG}.gdb
#---------------
install: ${PROG}
	${CP} ${PROG} ../../romdisk/local/
#---------------
# End of Makefile
