96 lines
3 KiB
Makefile
96 lines
3 KiB
Makefile
include make/defs/makefile.def
|
|
include make/utils.mk
|
|
|
|
make: c-x86-debug cpp-x86-debug c-x86-release cpp-x86-release go gosilly make-so
|
|
|
|
|
|
make-so:${SO_DIR}/*.c
|
|
@mkdir -p ${LIB_DIR}
|
|
@for file in $? ; do \
|
|
path=$$(echo "$$file" | cut -f 2 -d '/'); \
|
|
out=$$(echo "$$path" | cut -f 1 -d '.'); \
|
|
${CC} ${CFLAG_LIB} $$file -o ${LIB_DIR}/$$out.o;\
|
|
${CC} -shared -o ${LIB_DIR}/$$out.so ${LIB_DIR}/$$out.o -ldl; \
|
|
done
|
|
|
|
gosilly: libsilly.so silly.o
|
|
CGO_CFLAGS=${CGO_CFGLAGS_DYN} \
|
|
CGO_LDFLAGS=${CGO_LDFLAGS_DYN} \
|
|
${GO} build -o ${BIN_DIR}/silly.go golangc/silly.go
|
|
|
|
.PHONY: libsilly.so
|
|
libsilly.so: silly.o
|
|
@rm -f ${BIN_DIR}/libsilly.so
|
|
@mkdir -p ${LIB_DIR}
|
|
${CC} -shared -o ${LIB_DIR}/libsilly.so ${BIN_DIR}/silly.o
|
|
@ln -s ../${LIB_DIR}/libsilly.so ${BIN_DIR}/libsilly.so
|
|
|
|
.PHONY: silly.o
|
|
silly.o: golangc/silly.c
|
|
@mkdir -p ${BIN_DIR}
|
|
${CC} ${CFLAG_LIB} $? -o ${BIN_DIR}/silly.o
|
|
|
|
c-x86-debug:${C_LANG_DIR}/*.c
|
|
@mkdir -p ${BIN_DIR}
|
|
@for file in $? ; do \
|
|
path=$$(echo "$$file" | cut -f 2 -d '/'); \
|
|
out=$$(echo "$$path" | cut -f 1 -d '.'); \
|
|
echo ${CC} ${CFLAG_DEBUG} -o ${BIN_DIR}/$$out.c.debug.${ARCH_X86} $$file; \
|
|
${CC} ${CFLAG_DEBUG} -o ${BIN_DIR}/$$out.c.debug.${ARCH_X86} $$file -lpthread;\
|
|
done
|
|
|
|
cpp-x86-debug:${CPP_LANG_DIR}/*.cpp
|
|
@mkdir -p ${BIN_DIR}
|
|
@for file in $? ; do \
|
|
path=$$(echo "$$file" | cut -f 2 -d '/'); \
|
|
out=$$(echo "$$path" | cut -f 1 -d '.'); \
|
|
echo ${CPP} ${CFLAG_DEBUG} -o ${BIN_DIR}/$$out.cpp.debug.${ARCH_X86} $$file; \
|
|
${CPP} ${CFLAG_DEBUG} -o ${BIN_DIR}/$$out.cpp.debug.${ARCH_X86} $$file; \
|
|
done
|
|
|
|
c-x86-release:${C_LANG_DIR}/*.c
|
|
@mkdir -p ${BIN_DIR}
|
|
@for file in $? ; do \
|
|
path=$$(echo "$$file" | cut -f 2 -d '/'); \
|
|
out=$$(echo "$$path" | cut -f 1 -d '.'); \
|
|
echo ${CC} ${CFLAG_RELEASE} -o ${BIN_DIR}/$$out.c.release.${ARCH_X86} $$file; \
|
|
${CC} ${CFLAG_RELEASE} -o ${BIN_DIR}/$$out.c.release.${ARCH_X86} $$file; \
|
|
done
|
|
|
|
cpp-x86-release:${CPP_LANG_DIR}/*.cpp
|
|
@mkdir -p ${BIN_DIR}
|
|
@for file in $? ; do \
|
|
path=$$(echo "$$file" | cut -f 2 -d '/'); \
|
|
out=$$(echo "$$path" | cut -f 1 -d '.'); \
|
|
echo ${CPP} ${CFLAG_RELEASE} -o ${BIN_DIR}/$$out.cpp.release.${ARCH_X86} $$file; \
|
|
${CPP} ${CFLAG_RELEASE} -o ${BIN_DIR}/$$out.cpp.release.${ARCH_X86} $$file; \
|
|
done
|
|
|
|
go:${GO_LANG_DIR}/*.go
|
|
@mkdir -p ${BIN_DIR}
|
|
@for file in $? ; do \
|
|
path=$$(echo "$$file" | cut -f 2 -d '/'); \
|
|
echo ${GO} build ${GO_FLAGS} -o ${BIN_DIR}/$$path $$file; \
|
|
${GO} build ${GO_FLAGS} -o ${BIN_DIR}/$$path $$file; \
|
|
done
|
|
|
|
c-arm:${C_LANG_DIR}/*.c
|
|
@mkdir -p ${BIN_DIR}
|
|
@for file in $? ; do \
|
|
path=$$(echo "$$file" | cut -f 2 -d '/'); \
|
|
out=$$(echo "$$path" | cut -f 1 -d '.'); \
|
|
echo ${CC} ${CFLAG} -o ${BIN_DIR}/$$out.c.${ARCH} $$file; \
|
|
${CC_ARM} ${ARM_CFLAG} -o ${BIN_DIR}/$$out.c.${ARCH_ARM} $$file; \
|
|
done
|
|
|
|
c-asm-x86:
|
|
@mkdir -p ${ASM_X86_OUT}
|
|
${CC} ${ASM_C_FLAGS} ${C_LANG_DIR}/*.c
|
|
@mv *.s ${ASM_X86_OUT}
|
|
c-asm-arm:
|
|
@mkdir -p ${ASM_ARM_OUT}
|
|
${CC_ARM} ${ASM_ARM_C_FLAGS} ${C_LANG_DIR}/*.c
|
|
@mv *.s ${ASM_ARM_OUT}
|
|
|
|
clean:
|
|
@rm -rf ${BIN_DIR} ${ASM_ARM_OUT} ${ASM_X86_OUT} ${LIB_DIR}
|