CC = gcc $(CINC)
MT_FLAG = -Zmt
CFLAGS = -O $(MT_FLAG)
CINC = -I. -I../../include -I$(X11ROOT)/XFree86/include
LIBDIR = ../../../lib

LIBSRCS = shm.c
LIBOBJS = $(LIBSRCS:.c=.obj)

TESTSRCS = testshm.c
TESTOBJS = $(TESTSRCS:.c=.o)

XTSTSRCS = xtestshm.c
XTSTOBJS = $(XTSTSRCS:.c=.o)

CLNTSRCS = clntshm.c
CLNTOBJS = $(CLNTSRCS:.c=.o)

FORKSRCS = forkshm.c
FORKOBJS = $(FORKSRCS:.c=.o)

.SUFFIXES: .obj .o

all: shm.dll shm.lib shm.a shmsts.exe testshm2.exe # testshm.exe clntshm.exe forkshm.exe xtestshm.exe

shmsts.exe: shmsts.c
	$(CC) -O $(MT_FLAG) -Zcrtdll -Zomf -s -o $@ shmsts.c -lshm

shmrm.exe: shmrm.c
	$(CC) -O $(MT_FLAG) -Zcrtdll -Zomf -s -o $@ shmrm.c -lshm

testshm2.exe: testshm2.c
	$(CC) -O $(MT_FLAG) -Zcrtdll -Zomf -s -o $@ testshm2.c -lshm

testshm.exe: $(TESTOBJS)
	$(CC) $(MT_FLAG) -Zcrtdll -o $@ $(TESTOBJS) -lshm

xtestshm.exe: $(XTSTOBJS)
	$(CC) $(MT_FLAG)d -o $@ $(XTSTOBJS) -lshm -L$(X11ROOT)/XFree86/lib -lX11 -lXext 

clntshm.exe: $(CLNTOBJS)
	$(CC) $(MT_FLAG) -Zcrtdll -o $@ $(CLNTOBJS) -lshm

forkshm.exe: $(FORKOBJS)
	$(CC) $(MT_FLAG) -Zcrtdll -o $@ $(FORKOBJS) -lshm

shm.dll: $(LIBOBJS) shm.def
	$(CC) -Zdll $(MT_FLAG) -Zcrtdll -Zomf -o $@ $(LIBOBJS) shm.def

shm.lib: shm.def
	rm -f shm.lib
	emximp -o shm.lib shm.def
	cp shm.lib $(LIBDIR)

shm.a:	shm.def
	rm -f shm.a
	emximp -o shm.a shm.def
	cp shm.a $(LIBDIR)

.c.obj:
	$(CC) $(CFLAGS) -Zomf -c $<

.c.o:
	$(CC) $(CFLAGS) -c $<

clean:
	rm -f *.o *.obj *.dll *.lib *.a *.exe
