.SUFFIXES: .c .cc .cpp .h .o .asm .S .s

OPTS = -g
OPTS = -O5 -mpentiumpro -fomit-frame-pointer -g -Wall -Wstrict-prototypes -malign-double -ffast-math -funroll-all-loops -fno-default-inline 
OPTS = -O5 -mpentiumpro -fomit-frame-pointer -g -Wall -Wstrict-prototypes -malign-double -ffast-math -funroll-all-loops -fno-default-inline 
AFLAGS = -f coff

.c.o:   ; gcc $(CFLAGS) -c $<

.cc.o:  ; gcc $(CFLAGS) -c $<

.cpp.o: ; gcc $(CFLAGS) -c $<

.S.o:   ; gcc $(CFLAGS) -c $<

.asm.o: ; nasm $(AFLAGS) $<

O = 2_glob_a.o 2_cryp_a.o 2_hw_a.o\
    2010.o 2_file.o 2_grafix.o 2_hw.o 2_gfunc.o \
    2_hw_asm.o 2_71x6.o 2_hw_mem.o 2_crypt.o 2_txt.o 
    

OC = 2_nag_a.o 2_vc_a.o 2_glob_a.o 2_cryp_a.o 2_hw_a.o\
     2010.o 2_file.o 2_grafix.o 2_hw.o 2_gfunc.o \
     2_hw_asm.o 2_71x6.o 2_hw_mem.o 2_crypt.o 2_vc.o 2_nag.o 2_txt.o 2_vpaytv.o
     

default: ;$(MAKE) 2010 CFLAGS="$(OPTS)"

crypt:   ;$(MAKE) 2010C CFLAGS="$(OPTS) -DCRYPT"

2010  : $(O)  ; gcc $(CFLAGS) -o 2010  $(O) -ljpeg
2010C : $(OC) ; gcc $(CFLAGS) -o 2010C $(OC) -ljpeg
jpeg2Ppms  : jpeg2Ppms.o  ; gcc $(CFLAGS) -o jpeg2Ppms  jpeg2Ppms.o -ljpeg
countppm   : countppm.o   ; gcc $(CFLAGS) -o countppm   countppm.o
extractppm : extractppm.o ; gcc $(CFLAGS) -o extractppm extractppm.o
clean: ; del $(O) 2010

2010.o     : 2010.cpp     2_all.h 2010.h 2_file.h 2_hw.h 2_grafix.h\
                             2_71x6.h 2_hw_mem.h 2_nag.h
2_file.o   : 2_file.cpp   2_all.h 2_file.h 2010.h 2_hw.h
2_gfunc.o  : 2_gfunc.cpp  2_all.h 2_gfunc.h 2010.h 
2_grafix.o : 2_grafix.cpp 2_all.h 2_grafix.h 2010.h 2_gfunc.h 2_hw.h 2_file.h
2_hw.o     : 2_hw.cpp     2_all.h 2_hw.h 2010.h 2_hw_asm.h 2_hw_mem.h\
                             2_71x6.h 2_mmx.h 2_hw_a.h
2_hw_mem.o : 2_hw_mem.cpp 2_all.h 2_hw_mem.h 2010.h 
2_71x6.o   : 2_71x6.cpp   2_all.h 2_71x6.h 2_hw.h 2_hw_mem.h 2010.h 2_hw_asm.h
2_crypt.o  : 2_crypt.cpp  2_all.h 2_crypt.h 2_71x6.h 2_vc.h 2_nag.h 2_txt.h 2_vpaytv.h
2_vc.o     : 2_vc.cpp     2_all.h 2_vc.h 2_crypt.h 2_gfunc.h 2_vc_a.h
2_nag.o    : 2_nag.cpp    2_all.h 2_nag.h 2_crypt.h 2_gfunc.h 2_mmx.h 2_nag_a.h\
                             2010.h 2_hw_mem.h
2_txt.o    : 2_txt.cpp    2_all.h 2_txt.h 2_crypt.h 2_gfunc.h 2010.h 2_71x6.h
2_vpaytv.o : 2_vpaytv.cpp 2_all.h 2_crypt.h 2_vpaytv.h 2_mmx.h

2_hw_asm.o : 2_hw_asm.s

2_glob_a.o : 2_glob_a.asm 2_all_a.asm
2_nag_a.o  : 2_nag_a.asm  2_all_a.asm
2_vc_a.o   : 2_vc_a.asm   2_all_a.asm
2_cryp_a.o : 2_cryp_a.asm 2_all_a.asm
2_hw_a.o   : 2_hw_a.asm   2_all_a.asm

extractppm.o: extractppm.cpp
jpeg2Ppms.o : jpeg2Ppms.cpp
countppm.o  : countppm.cpp
