CC = gcc
DLLWRAP = dllwrap
DLLTOOL = dlltool
AS = as
DLLWRAP_FLAGS = -Wl,--image-base,0x6000000 -s
DLLTOOL_FLAGS = --as $(AS)
CFLAGS = -g $(X)

#OBJS := tga.o xbm.o bmp.o cel.o gif.o lbm.o pbm.o pcx.o pgm.o ppm.o tif.o
OBJS := xbm.o pbm.o pgm.o ppm.o cel.o

DLLS := $(OBJS:.o=.dll)
LIBS := $(addprefix lib,$(OBJS:.o=.a))
DEFS := $(OBJS:.o=.def)
CCCS := $(OBJS:.o=.c)



all: $(OBJS) $(DLLS) $(LIBS)





$(word 1,$(DLLS)) : $(word 1,$(OBJS)) $(word 1,$(DEFS))
	$(DLLWRAP) $(DLLWRAP_FLAGS) -o $@ --def \
    $(word 1,$(DEFS)) --dllname $@ $(word 1,$(OBJS))

$(word 2,$(DLLS)) : $(word 2,$(OBJS)) $(word 2,$(DEFS))
	$(DLLWRAP) $(DLLWRAP_FLAGS) -o $@ --def \
    $(word 2,$(DEFS)) --dllname $@ $(word 2,$(OBJS))

$(word 3,$(DLLS)) : $(word 3,$(OBJS)) $(word 3,$(DEFS))
	$(DLLWRAP) $(DLLWRAP_FLAGS) -o $@ --def \
    $(word 3,$(DEFS)) --dllname $@ $(word 3,$(OBJS))

$(word 4,$(DLLS)) : $(word 4,$(OBJS)) $(word 4,$(DEFS))
	$(DLLWRAP) $(DLLWRAP_FLAGS) -o $@ --def \
    $(word 4,$(DEFS)) --dllname $@ $(word 4,$(OBJS))

$(word 5,$(DLLS)) : $(word 5,$(OBJS)) $(word 5,$(DEFS))
	$(DLLWRAP) $(DLLWRAP_FLAGS) -o $@ --def \
    $(word 5,$(DEFS)) --dllname $@ $(word 5,$(OBJS))

$(word 6,$(DLLS)) : $(word 6,$(OBJS)) $(word 6,$(DEFS))
	$(DLLWRAP) $(DLLWRAP_FLAGS) -o $@ --def \
    $(word 6,$(DEFS)) --dllname $@ $(word 6,$(OBJS))

$(word 7,$(DLLS)) : $(word 7,$(OBJS)) $(word 7,$(DEFS))
	$(DLLWRAP) $(DLLWRAP_FLAGS) -o $@ --def \
    $(word 7,$(DEFS)) --dllname $@ $(word 7,$(OBJS))

$(word 8,$(DLLS)) : $(word 8,$(OBJS)) $(word 8,$(DEFS))
	$(DLLWRAP) $(DLLWRAP_FLAGS) -o $@ --def \
    $(word 8,$(DEFS)) --dllname $@ $(word 8,$(OBJS))

$(word 9,$(DLLS)) : $(word 9,$(OBJS)) $(word 9,$(DEFS))
	$(DLLWRAP) $(DLLWRAP_FLAGS) -o $@ --def \
    $(word 9,$(DEFS)) --dllname $@ $(word 9,$(OBJS))

$(word 10,$(DLLS)) : $(word 10,$(OBJS)) $(word 10,$(DEFS))
	$(DLLWRAP) $(DLLWRAP_FLAGS) -o $@ --def \
    $(word 10,$(DEFS)) --dllname $@ $(word 10,$(OBJS))

$(word 11,$(DLLS)) : $(word 11,$(OBJS)) $(word 11,$(DEFS))
	$(DLLWRAP) $(DLLWRAP_FLAGS) -o $@ --def \
    $(word 11,$(DEFS)) --dllname $@ $(word 11,$(OBJS))






# middle













$(word 1,$(DEFS)) $(word 1,$(LIBS)) : $(word 1,$(OBJS))
	$(DLLTOOL) $(DLLTOOL_FLAGS) --output-def $@ --dllname \
	$(word 1,$(DLLS)) --output-lib $(word 1,$(LIBS)) $(word 1,$(OBJS))

$(word 2,$(DEFS)) $(word 2,$(LIBS)) : $(word 2,$(OBJS))
	$(DLLTOOL) $(DLLTOOL_FLAGS) --output-def $@ --dllname \
    $(word 2,$(DLLS)) --output-lib $(word 2,$(LIBS)) $(word 2,$(OBJS))

$(word 3,$(DEFS)) $(word 3,$(LIBS)) : $(word 3,$(OBJS))
	$(DLLTOOL) $(DLLTOOL_FLAGS) --output-def $@ --dllname \
    $(word 3,$(DLLS)) --output-lib $(word 3,$(LIBS)) $(word 3,$(OBJS))

$(word 4,$(DEFS)) $(word 4,$(LIBS)) : $(word 4,$(OBJS))
	$(DLLTOOL) $(DLLTOOL_FLAGS) --output-def $@ --dllname \
    $(word 4,$(DLLS)) --output-lib $(word 4,$(LIBS)) $(word 4,$(OBJS))

$(word 5,$(DEFS)) $(word 5,$(LIBS)) : $(word 5,$(OBJS))
	$(DLLTOOL) $(DLLTOOL_FLAGS) --output-def $@ --dllname \
    $(word 5,$(DLLS)) --output-lib $(word 5,$(LIBS)) $(word 5,$(OBJS))

$(word 6,$(DEFS)) $(word 6,$(LIBS)) : $(word 6,$(OBJS))
	$(DLLTOOL) $(DLLTOOL_FLAGS) --output-def $@ --dllname \
    $(word 6,$(DLLS)) --output-lib $(word 6,$(LIBS)) $(word 6,$(OBJS))

$(word 7,$(DEFS)) $(word 7,$(LIBS)) : $(word 7,$(OBJS))
	$(DLLTOOL) $(DLLTOOL_FLAGS) --output-def $@ --dllname \
    $(word 7,$(DLLS)) --output-lib $(word 7,$(LIBS)) $(word 7,$(OBJS))

$(word 8,$(DEFS)) $(word 8,$(LIBS)) : $(word 8,$(OBJS))
	$(DLLTOOL) $(DLLTOOL_FLAGS) --output-def $@ --dllname \
    $(word 8,$(DLLS)) --output-lib $(word 8,$(LIBS)) $(word 8,$(OBJS))

$(word 9,$(DEFS)) $(word 9,$(LIBS)) : $(word 9,$(OBJS))
	$(DLLTOOL) $(DLLTOOL_FLAGS) --output-def $@ --dllname \
    $(word 9,$(DLLS)) --output-lib $(word 9,$(LIBS)) $(word 9,$(OBJS))

$(word 10,$(DEFS)) $(word 10,$(LIBS)) : $(word 10,$(OBJS))
	$(DLLTOOL) $(DLLTOOL_FLAGS) --output-def $@ --dllname \
    $(word 10,$(DLLS)) --output-lib $(word 10,$(LIBS)) $(word 10,$(OBJS))

$(word 11,$(DEFS)) $(word 11,$(LIBS)) : $(word 11,$(OBJS))
	$(DLLTOOL) $(DLLTOOL_FLAGS) --output-def $@ --dllname \
    $(word 11,$(DLLS)) --output-lib $(word 11,$(LIBS)) $(word 11,$(OBJS))





$(OBJS) : $(CCCS)






clean:
	-rm -f $(DLLS) $(LIBS) $(PROGRAMS) $(DEFS) *.o core

