Skip to content

Commit 0fc0283

Browse files
build as a library
1 parent 53325c3 commit 0fc0283

File tree

5 files changed

+26
-13
lines changed

5 files changed

+26
-13
lines changed

.github/workflows/make-archives.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ mkdir $1
66
mkdir ezld
77
cp ./bin/ezld ./ezld/ezld
88
tar -cvzf ./$1/ezld-$1.tar.gz ./ezld
9+
cp ./bin/ezld ./$1/ezld
910
rm -rf ./ezld
1011

1112
git add $1/

.github/workflows/upload.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ git rm -rf Makefile
99
git rm -rf ./bin
1010
git rm -rf ./plugins
1111
git rm -rf compile_flags.txt
12+
git rm -rf libfuzzer.c
1213

1314
git commit -m "new bundle"
1415
git push --set-upstream origin latest-build --force

Makefile

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@ LDFLAGS=
2020

2121
DEBUG_CFLAGS=-O0 -fsanitize=undefined -fsanitize=address -g
2222
DEBUG_LDFLAGS=
23-
RELEASE_CLFAGS=-O3 -Werror
23+
RELEASE_CLFAGS=-O2 -Werror
2424
RELEASE_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

2728
CUSTOM_CFLAGS?=
2829
CUSTOM_LDFLAGS?=
@@ -33,11 +34,7 @@ LDFLAGS+=$(CUSTOM_LDFLAGS)
3334

3435
BIN=bin
3536
EXEC?=$(BIN)/ezld
36-
37-
ifeq ($(OS),Windows_NT)
38-
TARMAN_OS=window
39-
EXEC+=.exe
40-
endif
37+
LIB=$(BIN)/libezld.a
4138

4239
rwildcard=$(foreach d,$(wildcard $(1:=/*)),$(call rwildcard ,$d, $2) $(filter $(subst *, %, $2),$d))
4340
SRC=$(call rwildcard, src/, *.c)
@@ -47,20 +44,33 @@ OBJ=$(patsubst src/%.c,obj/%.o, $(SRC))
4744

4845
debug:
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

5249
release:
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+
6474
obj/%.o: src/%.c
6575
@mkdir -p $(@D)
6676
$(CC) $(CFLAGS) -c $^ -o $@
@@ -69,7 +79,7 @@ obj/%.o: src/%.c
6979
force: ;
7080

7181
fuzz:
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

7484
dirs:
7585
@mkdir -p obj/

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ Use the included `Makefile` to build:
4848
```bash
4949
make debug # Build with debug info, sanitizers, -O0
5050
make release # Build optimized release version
51+
make library # Build as a static library
5152
```
5253

5354
---

src/main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#include <ezld/runtime.h>
2020
#include <tarman/cli-parser.h>
2121

22-
#ifndef EXT_EZLD_FUZZER
22+
#ifndef EXT_EZLD_NOMAIN
2323
int main(int argc, const char *argv[]) {
2424
ezld_runtime_init(argc, argv);
2525
ezld_config_t cfg = {0};

0 commit comments

Comments
 (0)