
# -- Paths ----------
SRC_PATH = src
OBJ_PATH = obj
EXE_PATH = bin
INC_PATH = include

TARGET ?= linux
#
# -- Config ----------

ifeq ($(TARGET),giet-vm)

C_DEBUG_FLAGS = -O0
C_OPTIM_FLAGS = -std=c99 -O2 -fstrict-aliasing
C_OS_FLAGS = -DGTODay -DTARGET_OS=GIETVM
C_CONFIG_FLAGS = -DCLI
C_INC_FLAGS = -I$(INC_PATH) -Inrc2/include -I../.. -I../../giet_libs -I../../giet_xml/
CFLAGSCPU := -mips32 -EL -G0 -mhard-float -fomit-frame-pointer -fno-builtin -ffreestanding

LDFLAGS := -Lnrc2 -L../../build/libs -Trosenfeld.ld --start-group -lnrc2x -luser -lmath --end-group

endif

ifeq ($(TARGET),linux)

CC = gcc
LD = gcc

# -- Config ----------
C_DEBUG_FLAGS = -O0
C_OPTIM_FLAGS = -std=c99 -O2 -fstrict-aliasing
C_OS_FLAGS = -DGTODay -DTARGET_OS=LINUX
C_CONFIG_FLAGS = -DCLI
C_INC_FLAGS = -I$(INC_PATH) -Inrc2/include
CFLAGSCPU = 

LDFLAGS := -Lnrc2 -Wl,--start-group -lnrc2x -lm -Wl,--end-group

endif



CFLAGSW := -Wredundant-decls -Wdisabled-optimization -Winline -Wpointer-arith -Wsign-compare -Wendif-labels -Wno-unused-function

# -- Flags ----------
#CFLAGS = $(C_DEBUG_FLAGS) $(C_OS_FLAGS) $(C_INC_FLAGS) $(C_CONFIG_FLAGS)
CFLAGS = $(C_OPTIM_FLAGS) $(C_OS_FLAGS) $(C_INC_FLAGS) $(C_CONFIG_FLAGS) -g -Wall $(CFLAGSW) $(CFLAGSCPU)


APP_NAME = appli.elf

SRC_FILE = $(wildcard $(SRC_PATH)/*.c)
INC_FILE = $(wildcard $(SRC_PATH)/*.h)

#SRC = $(addprefix $(SRC_PATH)/,$(FILE))
OBJ_FILE = $(addprefix $(OBJ_PATH)/,$(addsuffix .o, $(basename $(notdir $(SRC_FILE)))))





all: $(APP_NAME)

$(APP_NAME): $(OBJ_FILE)
	$(LD) -o $@ $^ $(LDFLAGS)

$(OBJ_PATH)/%.o: $(SRC_PATH)/%.c $(INC_FILE) nrc2/libnrc2x.a ../../build/libs/libuser.a
	$(CC) -c $(CFLAGS) -o $@ $<

clean:
	rm -f $(OBJ_FILE)
	rm -f $(APP_NAME)



