RM = erase CC = g++ AR = ar LD = gcc -mdll -e _DllMain@12 OPT = -g -O2 ## Mingw32 CFLAGS = $(OPT) -I. -DHAVE_CONFIG_H -Wall ## Cygwin G++ #CFLAGS = $(OPT) -fhandle-exceptions -I. -DHAVE_CONFIG_H -Wall OBJS = attr.o cancel.o cleanup.o condvar.o create.o dll.o \ exit.o fork.o global.o misc.o mutex.o private.o sched.o \ semaphore.o signal.o sync.o tsd.o INCL = implement.h pthread.h windows.h DLL = pthread.dll LIB = libpthread32.a all: $(LIB) $(LIB): $(DLL) dlltool --def $(DLL:.dll=.def) --output-lib $@ --dllname $(DLL) .SUFFIXES: .dll $(DLL): $(OBJS) $(LD) -o $@ $^ -Wl,--base-file,$*.base dlltool --base-file=$*.base --def $*.def --output-exp $*.exp --dllname $@ $(LD) -o $@ $^ -Wl,--base-file,$*.base,$*.exp dlltool --base-file=$*.base --def $*.def --output-exp $*.exp --dllname $@ $(LD) -o $@ $^ -Wl,$*.exp clean: -$(RM) *~ -$(RM) $(LIB) -$(RM) *.o -$(RM) *.exe -$(RM) $(DLL) -$(RM) $(DLL:.dll=.base) -$(RM) $(DLL:.dll=.exp)