node-yara-rs

git clone git://archive.git.mtrnord.blog/MTRNord/node-yara-rs.git
Log | Files | Refs | README | LICENSE

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