summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile112
1 files changed, 51 insertions, 61 deletions
diff --git a/Makefile b/Makefile
index f0d8982..4b87074 100644
--- a/Makefile
+++ b/Makefile
@@ -1,69 +1,59 @@
-#
-# Pthreads-win32 - POSIX Threads Library for Win32
-# Copyright (C) 1998
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the Free
-# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-# MA 02111-1307, USA
-#
-RM = erase
+# This makefile is compatible with MS nmake and can be used as a
+# replacement for buildlib.bat. I've changed the target from an ordinary dll
+# (/LD) to a debugging dll (/LDd).
+#
+# The variables $DLLDEST and $LIBDEST hold the destination directories for the
+# dll and the lib, respectively. Probably all that needs to change is $DEVROOT.
+
+DEVROOT=e:
+
+DLLDEST=$(DEVROOT)\dll
+LIBDEST=$(DEVROOT)\lib
+
+OBJ=attr.obj \
+ cancel.obj \
+ cleanup.obj \
+ condvar.obj \
+ create.obj \
+ dll.obj \
+ errno.obj \
+ exit.obj \
+ fork.obj \
+ global.obj \
+ misc.obj \
+ mutex.obj \
+ private.obj \
+ rwlock.obj \
+ sched.obj \
+ semaphore.obj \
+ signal.obj \
+ sync.obj \
+ tsd.obj
+
+all: pthread.dll
-CC = g++
-
-AR = ar
-
-LD = gcc -mdll
-
-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 errno.o \
- exit.o fork.o global.o misc.o mutex.o private.o rwlock.o \
- sched.o semaphore.o signal.o sync.o tsd.o
-
-INCL = implement.h semaphore.h pthread.h windows.h
-
-DLL = pthread.dll
-
-LIB = libpthread32.a
+clean:
+ del pthread.dll \
+ pthread.lib \
+ *.obj
-all: $(LIB)
+install: all
+ copy pthread.dll $(DLLDEST)
+ copy pthread.lib $(LIBDEST)
-$(LIB): $(DLL)
- dlltool --def $(DLL:.dll=.def) --output-lib $@ --dllname $(DLL)
+pthread.dll: $(OBJ) pthread.def
+ cl /LDd /Zi *.obj /Fepthread.dll \
+ pthread.def \
+ /link /nodefaultlib:libcmt \
+ msvcrt.lib
-.SUFFIXES: .dll
+.c.obj::
+ cl /W3 /MT /nologo /Yd /Zi /I. \
+ /D_WIN32_WINNT=0x400 \
+ /DSTDCALL=_stdcall \
+ -c $<
-$(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
+$(OBJ):
-clean:
- -$(RM) *~
- -$(RM) $(LIB)
- -$(RM) *.o
- -$(RM) *.exe
- -$(RM) $(DLL)
- -$(RM) $(DLL:.dll=.base)
- -$(RM) $(DLL:.dll=.exp)