# $URL: http://subversion:8080/svn/gsc/trunk/drivers/LINUX/DIO32/DIO32_Linux_1.x_GSC_DN/lib/makefile $
# $Rev: 54530 $
# $Date: 2024-05-28 09:29:54 -0500 (Tue, 28 May 2024) $

# DIO32: Library Directory: make file

default: all

TARGET_A	= dio32_main.a
TARGET_M	= dio32_multi.a

TARGET_A_SO	= libdio32_main.so
TARGET_M_SO	= libdio32_multi.so

.NOTPARALLEL: %.a

ifeq ("${GSC_LIB_COMP_FLAGS}","")
GSC_LIB_COMP_FLAGS_MSG=
else
GSC_LIB_COMP_FLAGS_MSG="  (added '${GSC_LIB_COMP_FLAGS}')"
endif

ifeq ("${GSC_LIB_LINK_FLAGS}","")
GSC_LIB_LINK_FLAGS_MSG=
else
GSC_LIB_LINK_FLAGS_MSG="  (added '${GSC_LIB_LINK_FLAGS}')"
endif

LIB_FILES_A	=				\
			${LIB_FILES_M}	\
			gsc_utils.a		\
			plx_utils.a		\
			os_utils.a

LIB_FILES_M	=				\
			dio32_dsl.a		\
			dio32_utils.a

all: ${TARGET_A} ${TARGET_M}
	@echo ==== All Done

release: ${TARGET_A} ${TARGET_M}
	@echo ==== release Done

shared: ${TARGET_A_SO} ${TARGET_M_SO}
	@echo ==== shared Done

clean::
	@echo ==== Cleaning ${TARGET_A} ${TARGET_M} ...
	@rm -f ${LIB_FILES_A} ${TARGET_A} ${TARGET_M}

${TARGET_A}: ${LIB_FILES_A}
	@echo ==== Linking: $@  ${GSC_LIB_LINK_FLAGS_MSG}
	@ld -r -o $@ ${LIB_FILES_A} ${GSC_LIB_LINK_FLAGS}

${TARGET_M}: ${LIB_FILES_M}
	@echo ==== Linking: $@  ${GSC_LIB_LINK_FLAGS_MSG}
	@ld -r -o $@ ${LIB_FILES_M} ${GSC_LIB_LINK_FLAGS}

${TARGET_A_SO}: ${LIB_FILES_A}
	@echo ==== Linking: $@  ${GSC_LIB_LINK_FLAGS_MSG}
	@gcc -shared -o ${TARGET_A_SO} -Wl,--whole-archive ${TARGET_A} -Wl,--no-whole-archive

${TARGET_M_SO}: ${LIB_FILES_M}
	@echo ==== Linking: $@  ${GSC_LIB_LINK_FLAGS_MSG}
	@gcc -shared -o ${TARGET_M_SO} -Wl,--whole-archive ${TARGET_M} -Wl,--no-whole-archive
