CC=/home/tporga2/intel/bin/icc

OBJS1=main.o functions.o functions_sse.o huffman.o list.o test_jpeg.o test_huff.o add_asm.o sub_asm.o dct_c1_asm.o dct_c2_asm.o compression.o
OBJS2=mainUser.o functions.o functions_sse.o huffman.o list.o test_jpeg.o test_huff.o add_asm.o sub_asm.o dct_c1_asm.o dct_c2_asm.o compression.o

CXXFLAGSXXXX= -O2 -g -ggdb -Wall -pg `pkg-config --cflags opencv` 

CXXFLAGS= -O2 -g -ggdb -Wall -pg -fasm-blocks `pkg-config --cflags opencv` 
#~ CFLAGS_GAP_PAR = -guide -parallel
#LDFLAGS=-lSDL


all: clean main mainUser

main: $(OBJS1)
	$(CC) $(CXXFLAGS) -o $@ $^ `pkg-config --libs opencv` -lm

main.o: main.c functions.h huffman.h list.h
	$(CC) $(CXXFLAGS) -c -o $@ $< -lm

mainUser: $(OBJS2)
	$(CC) $(CXXFLAGS) -o $@ $^ `pkg-config --libs opencv` -lm

mainUser.o: mainUser.c functions.h huffman.h list.h
	$(CC) $(CXXFLAGS) -c -o $@ $< -lm

	
#functions.o: functions.c functions.h
#	$(CC) $(CXXFLAGS) -c -o $@  $< `pkg-config --libs opencv` -lm

%.o: %.c %.h
	$(CC) $(CXXFLAGS) -m32  -c -o $@ $< `pkg-config --libs opencv` -lm
	
%.o: %.asm
	nasm -felf $< -o $@ -ggdb 

#test:  $(OBJS2)
#	$(CC) $(CXXFLAGS) -o $@ $^ -lm

#test.o: test.c functions.h huffman.h list.h test_jpeg.h test_huff.h
#	$(CC) $(CXXFLAGS) -c -o $@ $< -lm

#dct_asm.o: dct_asm.asm
#	nasm -felf $< -o $@ -ggdb 

clean: 
	@rm -f main.o functions.o functions_sse.o huffman.o list.o test_jpeg.o test_huff.o add_asm.o sub_asm.o dct_c1_asm.o dct_c2_asm.o compression.o mainUser.o main mainUser test
