summaryrefslogtreecommitdiff
path: root/Makefile
blob: 4ee92b0cbd8402864790eafeb63207c4317363b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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)