diff --git a/CMakeLists.txt b/CMakeLists.txt index a742bed..2a4e080 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,13 +52,10 @@ find_package(BDWgc REQUIRED) find_package(gmp REQUIRED) target_compile_options(argon PRIVATE -O3 -Wall -Wextra -Wno-unused-function -s) -if(NOT APPLE) - target_link_options(argon PRIVATE -static) -endif() target_link_libraries(argon PRIVATE - BDWgc::BDWgc - gmp::gmp + "${CMAKE_CURRENT_SOURCE_DIR}/external/lib/libgc.a" + "${CMAKE_CURRENT_SOURCE_DIR}/external/lib/libgmp.a" m ) diff --git a/Makefile b/Makefile index 47f0ba6..67a8867 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,7 @@ LEXER_SRC = src/lexer/lex.l LEXER_C = src/lexer/lex.yy.c LEXER_H = src/lexer/lex.yy.h CFLAGS = $(ARCHFLAGS) -lm -lgc -lgmp -Wall -Wextra -Wno-unused-function -Werror=unused-result -Iexternal/cwalk/include -Iexternal/libdye/include +LDFLAGS = -Wl,-Bstatic -lgc -lgmp -Wl,-Bdynamic -lm all: $(BINARY) @@ -21,7 +22,7 @@ $(LEXER_C) $(LEXER_H): $(LEXER_SRC) $(BINARY): $(CFILES) $(LEXER_C) $(LEXER_H) mkdir -p bin - gcc -O3 -o $(BINARY) $(CFILES) $(CFLAGS) -s + gcc -O3 -o $(BINARY) $(CFILES) $(CFLAGS) ${LDFLAGS} -s windows: $(CFILES) $(LEXER_C) $(LEXER_H) (echo -n "external/xxhash/xxhash.c " ; \ @@ -33,7 +34,7 @@ windows: $(CFILES) $(LEXER_C) $(LEXER_H) native: $(CFILES) $(LEXER_C) $(LEXER_H) mkdir -p bin - gcc -O3 -march=native -o $(BINARY) $(CFILES) $(CFLAGS) + gcc -O3 -march=native -o $(BINARY) $(CFILES) $(CFLAGS) ${LDFLAGS} debug: $(CFILES) $(LEXER_C) $(LEXER_H) mkdir -p bin @@ -41,13 +42,13 @@ debug: $(CFILES) $(LEXER_C) $(LEXER_H) full-debug: $(CFILES) $(LEXER_C) $(LEXER_H) mkdir -p bin - gcc -g -O0 -fsanitize=address -fno-omit-frame-pointer -o $(BINARY) $(CFILES) $(CFLAGS) + gcc -g -O0 -fsanitize=address -fno-omit-frame-pointer -o $(BINARY) $(CFILES) $(CFLAGS) ${LDFLAGS} optimised: $(CFILES) $(LEXER_C) $(LEXER_H) mkdir -p bin - gcc -O3 -fprofile-generate -o $(BINARY) $(CFILES) $(CFLAGS) + gcc -O3 -fprofile-generate -o $(BINARY) $(CFILES) $(CFLAGS) ${LDFLAGS} ${BINARY} rand_test.ar - gcc -O3 -fprofile-use -o $(BINARY) $(CFILES) $(CFLAGS) + gcc -O3 -fprofile-use -o $(BINARY) $(CFILES) $(CFLAGS) ${LDFLAGS} clean: