chore: makefile cleanup

main
Sean McBride 4 years ago
parent 3bbad277b3
commit 9728147fe3

@ -1,17 +1,36 @@
BASE_DIR=/sledge BASE_DIR=../../../
include Makefile.wasm.inc
# SOD does not generally require a Makefile to build. Just drop sod.c and its accompanying AWSM_CC=awsm
# header files on your source tree and you are done.
NCC = clang
NCFLAGS = -I. -DCPU_FREQ=3600 -O3 -lm -DSOD_DISABLE_CNN -DLIBCOX_DISABLE_DISK_IO
WCFLAGS = -DWASM -I. -DSOD_DISABLE_CNN -lm -DLIBCOX_DISABLE_DISK_IO
#sod: sod.c NATIVE_CC=clang
# $(CC) sod.c samples/cnn_face_detection.c -o sod_face_detect -I. $(CFLAGS) NATIVE_CFLAGS = -I. -DCPU_FREQ=3600 -O3 -lm -DSOD_DISABLE_CNN -DLIBCOX_DISABLE_DISK_IO
EXT = out OPTFLAGS=-O3 -flto
WEXT = wout
WASM_CC=wasm32-unknown-unknown-wasm-clang
WASM_LDFLAGS=-Wl,-z,stack-size=524288,--allow-undefined,--no-threads,--stack-first,--no-entry,--export-all,--export=main,--export=dummy
WASM_CFLAGS=${WASM_LDFLAGS} -nostartfiles -DWASM -I. -DSOD_DISABLE_CNN -lm -DLIBCOX_DISABLE_DISK_IO
MEMC_64=64bit_nix.c
# for aWsm compiler
# Currently only uses wasmception backing
AWSM_DIR=${BASE_DIR}/awsm/
AWSM_RT_DIR=${AWSM_DIR}/runtime/
AWSM_RT_MEM=${AWSM_RT_DIR}/memory/
AWSM_RT_LIBC=${AWSM_RT_DIR}/libc/wasmception_backing.c
AWSM_RT_ENV=${AWSM_RT_DIR}/libc/env.c
AWSM_RT_RT=${AWSM_RT_DIR}/runtime.c
AWSM_RT_MEMC=${AWSM_RT_MEM}/${MEMC_64}
DUMMY=${AWSM_DIR}/code_benches/dummy.c
# for SLEdge serverless runtime
SLEDGE_RT_DIR=${BASE_DIR}/runtime/
SLEDGE_RT_INC=${SLEDGE_RT_DIR}/include/
SLEDGE_MEMC=${SLEDGE_RT_DIR}/compiletime/memory/${MEMC_64}
SLEDGE_BIN_DIR=${SLEDGE_RT_DIR}/bin/
WASMISA=${SLEDGE_RT_DIR}/compiletime/instr.c
SAMPLES = resize_image \ SAMPLES = resize_image \
license_plate_detection license_plate_detection
@ -40,16 +59,8 @@ SAMPLES = resize_image \
# rotate_image \ # rotate_image \
# sobel_operator_img # sobel_operator_img
SAMPLESOUT = $(SAMPLES:%=%.$(EXT))
SAMPLESWOUT = $(SAMPLES:%=%.$(WEXT))
all: clean dir copy all: clean dir copy
native: samples
wasm: samples.wasm
# samples.wasm
# samples
dir: dir:
mkdir -p bin/ mkdir -p bin/
@ -57,19 +68,30 @@ copy:
cp samples/*.png bin/ cp samples/*.png bin/
cp samples/*.jpg bin/ cp samples/*.jpg bin/
samples: $(SAMPLESOUT) .PHONY: samples.wasm
samples.wasm: resize_image.wasm license_plate_detection.wasm
.PHONY: samples.so
samples.so: resize_image.so license_plate_detection.so
.PHONY: samples.out
samples.out: resize_image.out license_plate_detection.out
samples.wasm: $(SAMPLESWOUT) %.wasm: samples/%.c
$(WASM_CC) $(WASM_CFLAGS) $(OPTFLAGS) sod.c $< $(DUMMY) -o bin/$@
%.$(EXT): %.out: %.wasm
$(NCC) $(NCFLAGS) sod.c samples/$(@:%.$(EXT)=%.c) -o bin/$@ $(AWSM_CC) $< -o $(<:.wasm=.bc)
$(NATIVE_CC) ${CFLAGS} ${EXTRA_CFLAGS} $(OPTFLAGS) -DUSE_MEM_VM bin/$(<:.wasm=.bc) $(AWSM_RT_LIBC) $(AWSM_RT_RT) $(AWSM_RT_ENV) $(AWSM_RT_MEMC) -o $@
%.$(WEXT): %.so: %.wasm
$(WASMCC) $(WCFLAGS) $(WASMCFLAGS) $(OPTFLAGS) sod.c samples/$(@:%.$(WEXT)=%.c) $(DUMMY) -o bin/$(@:%.$(WEXT)=%.wasm) $(AWSM_CC) --inline-constant-globals --runtime-globals bin/$< -o bin/$(@:.so=.bc)
# $(SFCC) bin/$(@:%.$(WEXT)=%.wasm) -o bin/$(@:%.$(WEXT)=%.bc) $(NATIVE_CC) --shared -fPIC ${CFLAGS} ${EXTRA_CFLAGS} $(OPTFLAGS) -DUSE_MEM_VM -I${SLEDGE_RT_INC} bin/$(@:.so=.bc) $(WASMISA) ${SLEDGE_MEMC} -o bin/$@
# $(CC) ${CFLAGS} ${EXTRA_CFLAGS} $(OPTFLAGS) -D$(USE_MEM) bin/$(@:%.$(WEXT)=%.bc) $(RT_LIBC) $(RT_RT) ${MEMC} -o bin/$@
$(SFCC) --inline-constant-globals --runtime-globals bin/$(@:%.$(WEXT)=%.wasm) -o bin/$(@:%.$(WEXT)=%.bc)
$(CC) --shared -fPIC ${CFLAGS} ${EXTRA_CFLAGS} $(OPTFLAGS) -D$(USE_MEM) -I${ART_INC} bin/$(@:%.$(WEXT)=%.bc) $(WASMISA) ${AMEMC} -o bin/$(@:%.$(WEXT)=%.awsm)
.PHONY: clean
clean: clean:
rm -f bin/* rm -f bin/*
rm -f *.wasm
rm -f *.bc
rm -f *.so
rm -f *.out

@ -1,38 +0,0 @@
BASE=sledge
SFCC=awsm
CC=clang
WASMCC=wasm32-unknown-unknown-wasm-clang
OPTFLAGS=-O3 -flto
# same stack-size for all
WASMLINKFLAGS=-Wl,-z,stack-size=524288,--allow-undefined,--no-threads,--stack-first,--no-entry,--export-all,--export=main,--export=dummy
WASMCFLAGS=${WASMLINKFLAGS} -nostartfiles
MEMC_64=64bit_nix.c
MEMC_NO=no_protection.c
MEMC_GEN=generic.c
MEMC_MPX=mpx.c
MEMC_SEG=segmented.c
# for silverfish
RT_DIR=${BASE_DIR}/awsm/runtime/
RT_MEM=${RT_DIR}/memory/
RT_LIBC=${RT_DIR}/libc/libc_backing.c
RT_RT=${RT_DIR}/runtime.c
MEMC=${RT_MEM}/${MEMC_64}
DUMMY=${BASE_DIR}/awsm/code_benches/dummy.c
# for awsm
ABASE_DIR=${BASE_DIR}
ART_DIR=${ABASE_DIR}/runtime/
ART_INC=${ART_DIR}/include/
USE_MEM=USE_MEM_VM
ifeq ($(USE_MEM),USE_MEM_VM)
AMEMC=${ART_DIR}/compiletime/memory/${MEMC_64}
endif
WASMISA=${ART_DIR}/compiletime/instr.c
ABIN_DIR=${ART_DIR}/bin/
TMP_DIR=tmp/
Loading…
Cancel
Save