Makefile (2926B)
1 BASE=$(shell pwd) 2 OSNAME=$(shell uname) 3 4 ifeq ($(OSNAME),Darwin) 5 CFLAGS += -I/usr/local/include/node 6 CFLAGS += -I/usr/local/include 7 LDFLAGS += -L/usr/local/lib 8 JANSSON_LDFLAGS += $(LDFLAGS) 9 IS_MACOS += true 10 endif 11 12 LDFLAGS_JANSSON += -L$(BASE)/build/jansson/lib 13 14 ifeq ($(findstring arm64,$(CFLAGS)),arm64) 15 CFGOPTS += --host=aarch64-apple-darwin 16 endif 17 18 YARA?=4.3.2 19 JANSSON?=2.13.1 20 21 libyara: yara 22 23 clean: 24 -rm -rf $(BASE)/build/yara 25 -rm -rf $(BASE)/deps/yara-$(YARA) 26 -rm -rf $(BASE)/build/jansson 27 -rm -rf $(BASE)/deps/jansson-$(JANSSON) 28 cargo clean 29 30 jansson: clean 31 @if ! [ $(IS_MACOS) == "true" ]; then\ 32 echo $(CFLAGS);\ 33 echo $(LDFLAGS);\ 34 echo $(JANSSON_LDFLAGS);\ 35 echo $(CC);\ 36 test -f $(BASE)/deps/jansson-$(JANSSON).tar.gz || curl -L -k https://github.com/akheron/jansson/releases/download/v$(JANSSON)/jansson-$(JANSSON).tar.gz > $(BASE)/deps/jansson-$(JANSSON).tar.gz;\ 37 cd $(BASE)/deps && tar -xzvf jansson-$(JANSSON).tar.gz;\ 38 cd $(BASE)/deps/jansson-$(JANSSON) && \ 39 CFLAGS="$(CFLAGS)" \ 40 LDFLAGS="$(JANSSON_LDFLAGS)" \ 41 ./configure \ 42 $(CFGOPTS) \ 43 --enable-static \ 44 --disable-shared \ 45 --with-pic \ 46 --prefix=$(BASE)/build/jansson;\ 47 cd $(BASE)/deps/jansson-$(JANSSON) && make;\ 48 cd $(BASE)/deps/jansson-$(JANSSON) && make install;\ 49 ls -lah $(BASE)/build/jansson/*;\ 50 fi 51 52 yara: clean jansson 53 echo $(CFLAGS) 54 echo $(LDFLAGS) 55 echo $(CC) 56 test -f $(BASE)/deps/yara-$(YARA).tar.gz || curl -L -k https://github.com/VirusTotal/yara/archive/v$(YARA).tar.gz > $(BASE)/deps/yara-$(YARA).tar.gz 57 cd $(BASE)/deps && tar -xzvf yara-$(YARA).tar.gz 58 59 # Handle json.c 60 mkdir -p $(BASE)/deps/yara-$(YARA)/libyara/modules/json 61 echo "Copying json.c into libyara..." 62 cp $(BASE)/deps/json.c $(BASE)/deps/yara-$(YARA)/libyara/modules/json/json.c 63 @if grep -q "MODULE(json)" "$(BASE)/deps/yara-$(YARA)/libyara/modules/module_list"; then\ 64 echo "Already added json module to module list...";\ 65 else\ 66 echo "MODULE(json)" >> "$(BASE)/deps/yara-$(YARA)/libyara/modules/module_list";\ 67 fi 68 @if grep -q "MODULES += libyara/modules/json/json.c" "$(BASE)/deps/yara-$(YARA)/Makefile.am"; then\ 69 echo "Already added json module link to Makefile.am...";\ 70 else\ 71 echo "MODULES += libyara/modules/json/json.c" >> "$(BASE)/deps/yara-$(YARA)/Makefile.am";\ 72 fi 73 74 cd $(BASE)/deps/yara-$(YARA) && ./bootstrap.sh 75 cd $(BASE)/deps/yara-$(YARA) && \ 76 CFLAGS="$(CFLAGS)" \ 77 LDFLAGS="$(LDFLAGS_JANSSON) $(LDFLAGS)" \ 78 ./configure \ 79 $(CFGOPTS) \ 80 --enable-cuckoo \ 81 --enable-static \ 82 --disable-shared \ 83 --with-pic \ 84 --prefix=$(BASE)/build/yara 85 cd $(BASE)/deps/yara-$(YARA) && make 86 cd $(BASE)/deps/yara-$(YARA) && make install 87 88 build: yara 89 yarn build 90 91 debug_results: build 92 cargo rustc --release -- --print link-args 93 ldd *.node 94 nm build/yara/bin/yara | grep json 95 nm build/yara/lib/libyara.a | grep json 96 nm *.node | grep json 97 98 test: build 99 yarn run test