COMPILE_OPTIONS=-Wall -O2
COMPILE_OPTIONS_DEBUG=-Wall

OTHER_OBJS=parser/debug.o parser/mensaje/mensaje.o parser/nivel_transporte/transporte.o \
	   parser/red.o parser/utilleria/utilleria.o parser/nivel_transporte/utilleria.o \
	   structures/types.o queues/msg_structures.o msg_util.o como.o

TIME_OBJS=../time/source/time.o

all: ../structures ../parser ../queues ../como.c
	cd ../structures;make all_debug
	cd ../parser;make all_debug
	cd ../queues;make all_debug
	cd ..; $(CC) $(COMPILE_OPTIONS_DEBUG) -c msg_util.c
	cd ..; $(CC) $(COMPILE_OPTIONS_DEBUG) -c como.c
	#cd ..; gcc $(COMPILE_OPTIONS_DEBUG) -c test_como.c
	cd ..; gcc $(COMPILE_OPTIONS_DEBUG) -c coco.c
	#cd ..; gcc $(COMPILE_OPTIONS_DEBUG) -c time_test.c
	#cd ..; gcc $(COMPILE_OPTIONS_DEBUG) -o test_como test_como.o $(OTHER_OBJS)
	cd ..; gcc $(COMPILE_OPTIONS_DEBUG) -o coco coco.o -lpthread $(OTHER_OBJS)
	#cd ..; gcc $(COMPILE_OPTIONS_DEBUG) -o time_test $(TIME_OBJS) $(OTHER_OBJS) time_test.o
	cd ..; $(LD) $(LDFLAGS) -r -o como_final.o -static $(OTHER_OBJS); mv como_final.o make/como.o


all_sd: ../structures ../parser ../queues ../como.c
	cd ../structures;make
	cd ../parser;make
	cd ../queues;make
	cd ..; $(CC) $(COMPILE_OPTIONS) -c msg_util.c
	cd ..; $(CC) $(COMPILE_OPTIONS) -c como.c
	#cd ..; gcc $(COMPILE_OPTIONS) -c test_como.c
	cd ..; gcc $(COMPILE_OPTIONS) -c coco.c
	#cd ..; gcc $(COMPILE_OPTIONS) -c time_test.c
	#cd ..; gcc $(COMPILE_OPTIONS) -o test_como test_como.o $(OTHER_OBJS)
	cd ..; gcc $(COMPILE_OPTIONS) -o coco coco.o -lpthread $(OTHER_OBJS)
	#cd ..; gcc $(COMPILE_OPTIONS) -o time_test $(TIME_OBJS) $(OTHER_OBJS) time_test.o
	cd ..; $(LD) $(LDFLAGS) -r -o como_final.o -static $(OTHER_OBJS); mv como_final.o make/como.o


#doc:
#	doxygen Doxyfile

clean: 
	cd ../structures; make clean
	cd ../parser;make clean
	cd ../queues; make clean
	rm -f ../*.o ../coco ../test_como ../time_test como.o

