include version.mk

CC=gcc -Wall -fPIC -Wno-unused-but-set-variable

JAVA_H=-I`find /usr/lib/ -name jni.h | head -n1  | sed "s/\/[^\/]\+$$/\//"` -I`find /usr/lib/ -name jni_md.h | head -n1  | sed "s/\/[^\/]\+$$/\//"`
LIBJVM=`find /usr/lib -name libjvm.so | head -n1 | sed "s/\/[^\/]\+$$/\//"`
LDFLAGS=-L$(LIBJVM) utils.a -Wl,-z,defs -lcurl -lpthread -ldl -lcrypto
CFLAGS=-std=gnu99 -I. $(VERFLAGS) $(JAVA_H)

TARGETS=catch_proc utils.a siin ifponto.so libifdevice4j.so info modjava.so

OBJS=mod_params.o server.o sched.o modXXXXload.o modupload.o

UTILS_OBJS=ifractal_utils.o if_common_net.o ifractal_threads.o unix_utils.o cgi.o base64.o delete.o if_vetor.o if_string.o proc_manager.o url.o filesystem.o quoted-printable.o broadcast.o ping.o netraw.o tcpraw.o rc4.o re.o

PARSER_OBJS=json2fixo.o parser.o core.o boleto_barras.o process_model.o

JSON_OBJS=json.o json.lex.o json.tab.o

UOBJS=$(UTILS_OBJS) $(PARSER_OBJS) $(JSON_OBJS)
DEVICEOBJS=libifdevice4j.o ifdevice_configs.o ifdevice_utils.o henry8x.o zk.o idx.o dimep.o

all: $(TARGETS) help

utils.a: $(UOBJS)
	ar rcs utils.a $(UOBJS)

tunnel_client.so: tunnel_client.o tunnel_configs.o utils.a
	$(CC) -shared -o tunnel_client.so tunnel_client.o tunnel_configs.o $(LDFLAGS)

ifponto.so: ifponto.o ifdevice_configs.o utils.a
	$(CC) -shared -o ifponto.so ifponto.o ifdevice_configs.o $(LDFLAGS)

libifdevice4j.so: $(DEVICEOBJS) utils.a
	$(CC) -shared -o libifdevice4j.so $(DEVICEOBJS) $(LDFLAGS)

siin: unix.c $(OBJS) utils.a
	$(CC) -DSTANDALONE -c unix.c $(CFLAGS)
	$(CC) -o siin unix.o $(OBJS) $(LDFLAGS)

catch_proc: catch_proc.o
	$(CC) catch_proc.o -o catch_proc

modjava.so: modjava.o utils.a
	$(CC) -shared -o modjava.so modjava.o $(LDFLAGS) -ljvm

info: info.o utils.a
	$(CC) -o info info.o $(LDFLAGS)

help:
	cat readme.txt

clean:
	rm $(TARGETS) *.o


