PJ =error_code list canfd_config canfd

CFLAGS =  -I. -I../include
Bit := $(shell getconf LONG_BIT)

CROSS_COMPILE   :=
DLIBS           :=
SLIBS           :=
AM_LDFLAGS      := -lpthread

ifeq ($(Tool), ARM)
    CROSS_COMPILE   = arm-linux-gnueabihf-
    DLIBS           = ../lib/libCANFD_arm.so.1.0
    SLIBS           = ../lib/libCANFD_arm.a
    AM_LDFLAGS      += -lgcc_s

else ifeq ($(Tool), ARM64)
    CROSS_COMPILE   = aarch64-linux-gnu-
    DLIBS           = ../lib/libCANFD_arm64.so.1.0
    SLIBS           = ../lib/libCANFD_arm64.a
    LDFLAGS         = -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed

else ifeq ($(Bit), 64)
    # x86_64
    DLIBS = ../lib/libCANFD_64.so.1.0
    SLIBS = ../lib/libCANFD_64.a

else
    # x86 32-bit
    DLIBS = ../lib/libCANFD_32.so.1.0
    SLIBS = ../lib/libCANFD_32.a
endif

AS              = $(CROSS_COMPILE)as
LD              = $(CROSS_COMPILE)ld
CC              = $(CROSS_COMPILE)gcc
CPP             = $(CC) -E
AR              = $(CROSS_COMPILE)ar
NM              = $(CROSS_COMPILE)nm
STRIP           = $(CROSS_COMPILE)strip
OBJCOPY         = $(CROSS_COMPILE)objcopy
OBJDUMP         = $(CROSS_COMPILE)objdump
#    dynamic lib            static lib
#all: $(addsuffix _d, $(PJ)) $(addsuffix _s, $(PJ))
all: $(addsuffix _d, $(PJ)) 

%_s: %.c
	$(CC) $(CFLAGS) $(LDFLAGS) -g -o $@ $< $(SLIBS) $(AM_LDFLAGS) -lm -lpthread

%_d: %.c
	$(CC) $(CFLAGS) $(LDFLAGS) -g -o $@ $< $(DLIBS) $(AM_LDFLAGS) -lm -lpthread

clean:
	rm -f $(addsuffix _s, $(PJ)) $(addsuffix _d, $(PJ)) *~ *.o *.tmp *.bak \#* .\#*
