@@ -20,9 +20,10 @@ LDFLAGS=
2020
2121DEBUG_CFLAGS =-O0 -fsanitize=undefined -fsanitize=address -g
2222DEBUG_LDFLAGS =
23- RELEASE_CLFAGS =-O3 -Werror
23+ RELEASE_CLFAGS =-O2 -Werror
2424RELEASE_LDFLAGS =-flto
25- FUZZER_CFLAGS =$(DEBUG_CFLAGS ) -fsanitize=fuzzer -DEXT_EZLD_FUZZER
25+ FUZZER_CFLAGS =$(DEBUG_CFLAGS ) -fsanitize=fuzzer -DEXT_EZLD_NOMAIN
26+ LIBRARY_CFLAGS =$(RELEASE_CFLAGS ) -DEXT_EZLD_NOMAIN
2627
2728CUSTOM_CFLAGS? =
2829CUSTOM_LDFLAGS? =
@@ -33,11 +34,7 @@ LDFLAGS+=$(CUSTOM_LDFLAGS)
3334
3435BIN =bin
3536EXEC? =$(BIN ) /ezld
36-
37- ifeq ($(OS ) ,Windows_NT)
38- TARMAN_OS=window
39- EXEC+=.exe
40- endif
37+ LIB =$(BIN ) /libezld.a
4138
4239rwildcard =$(foreach d,$(wildcard $(1:=/* ) ) ,$(call rwildcard ,$d, $2) $(filter $(subst * , % , $2) ,$d) )
4340SRC =$(call rwildcard, src/, * .c)
@@ -47,20 +44,33 @@ OBJ=$(patsubst src/%.c,obj/%.o, $(SRC))
4744
4845debug :
4946 @echo =========== COMPILING IN DEBUG MODE ===========
50- @make all CUSTOM_CFLAGS=" $( DEBUG_CFLAGS) " " CUSTOM_LDFLAGS=$( DEBUG_LDFLAGS) "
47+ @make ezld CUSTOM_CFLAGS=" $( DEBUG_CFLAGS) " " CUSTOM_LDFLAGS=$( DEBUG_LDFLAGS) "
5148
5249release :
53- @echo =========== COMPILING IN DEBUG MODE ===========
54- @make CUSTOM_CFLAGS=$(RELEASE_CLFAGS ) CUSTOM_LDFLAGS=$(RELEASE_LDFLAGS ) all
50+ @echo =========== COMPILING IN RELEASE MODE ===========
51+ @make CUSTOM_CFLAGS=$(RELEASE_CLFAGS ) CUSTOM_LDFLAGS=$(RELEASE_LDFLAGS ) ezld
52+
53+ library :
54+ @echo =========== COMPILING AS A LIBRARY ===========
55+ @make CUSTOM_CFLAGS=$(RELEASE_CLFAGS ) CUSTOM_LDFLAGS=$(RELEASE_LDFLAGS ) libezld
56+
57+ compile : dirs $(OBJ )
5558
56- all : dirs $(OBJ ) $(EXEC )
59+ ezld : compile $(EXEC )
60+ @echo
61+ @echo All done!
62+
63+ libezld : compile $(LIB )
5764 @echo
5865 @echo All done!
5966
6067$(EXEC ) : obj $(OBJ )
6168 $(CC ) $(LDFLAGS ) $(CFLAGS ) $(OBJ ) -o $(EXEC )
6269 @echo
6370
71+ $(LIB ) : obj $(OBJ )
72+ ar rcs $(LIB ) $(OBJ )
73+
6474obj/% .o : src/% .c
6575 @mkdir -p $(@D )
6676 $(CC ) $(CFLAGS ) -c $^ -o $@
@@ -69,7 +79,7 @@ obj/%.o: src/%.c
6979force : ;
7080
7181fuzz :
72- make CUSTOM_SRC=libfuzzer.c EXEC=$(BIN ) /fuzz CC=clang CUSTOM_CFLAGS=" $( FUZZER_CFLAGS) " CUSTOM_LDFLAGS=$(DEBUG_LDFLAGS ) all && ./bin/fuzz -ignore_crashes=1 ./fuzztest
82+ @ make CUSTOM_SRC=libfuzzer.c EXEC=$(BIN ) /fuzz CC=clang CUSTOM_CFLAGS=" $( FUZZER_CFLAGS) " CUSTOM_LDFLAGS=$(DEBUG_LDFLAGS ) ezld && ./bin/fuzz -ignore_crashes=1 ./fuzztest
7383
7484dirs :
7585 @mkdir -p obj/
0 commit comments