From 16cb1bf22f72db0ac47080e364ffbc79a3ec174a Mon Sep 17 00:00:00 2001 From: rpj Date: Mon, 14 Aug 2000 03:43:09 +0000 Subject: 2000-08-13 Ross Johnson * errno.c: Add _MD precompile condition; thus far had no effect when using /MD compile option but I thnk it should be there. * exit.c: Add __cplusplus to various #if lines; was compiling SEH code even when VC++ had C++ compile options. * private.c: ditto. * create.c (pthread_create): Add PT_STDCALL macro to function pointer arg in _beginthread(). * pthread.h: PT_STDCALL really does need to be defined in both this and impliment.h; don't set it to __cdecl - this macro is only used to extend function pointer casting for functions that will be passed as parameters. (~PThreadCleanup): add cast and group expression. (_errno): Add _MD compile conditional. (PtW32NoCatchWarn): Change pragma message. * implement.h: Move and change PT_STDCALL define. * need_errno.h: Add _MD to compilation conditional. * GNUmakefile: Substantial rewrite for new naming convention; set for nil optimisation (turn it up when we have a working library build; add target "fake.a" to build a libpthreadw32.a from the VC++ built DLL pthreadVCE.dll. * pthread.def (LIBRARY): Don't specify in the .def file - it is specified on the linker command line since we now use the same .def file for variously named .dlls. * Makefile: Substantial rewrite for new naming convention; default nmake target only issues a help message; run nmake with specific target corresponding to the EH scheme being used. * README: Update information; add naming convention explanation. * ANNOUNCE: Update information. 2000-08-12 Ross Johnson * pthread.h: Add compile-time message when using MSC_VER compiler and C++ EH to warn application programmers to use PtW32Catch instead of catch(...) if they want cancelation and pthread_exit to work. * implement.h: Remove #include ; we use our own local semaphore.h. tests/ChangeLog: 2000-08-13 Ross Johnson * condvar3.c: Minor change to eliminate compiler warning. * condvar4.c: ditto. * condvar5.c: ditto. * condvar6.c: ditto. * condvar7.c: ditto. * condvar8.c: ditto. * condvar9.c: ditto. * exit1.c: Function needed return statement. * cleanup1.c: Remove unnecessary printf arg. * cleanup2.c: Fix cast. * rwlock6.c: Fix casts. * exception1.c (PtW32CatchAll): Had the wrong name; fix casts. * cancel3.c: Remove unused waitLock variable. * GNUmakefile: Change library/dll naming; add new tests; general minor changes. * Makefile: Change library/dll naming; add targets for testing each of the two VC++ EH scheme versions; default target now issues help message; compile warnings now interpreted as errors to stop the make; add new tests; restructure to remove prerequisites needed otherwise. * README: Updated. --- Makefile | 55 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 23 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 3ecd026..f8d0b00 100644 --- a/Makefile +++ b/Makefile @@ -11,9 +11,14 @@ DEVROOT=c:\pthreads\dll DLLDEST=$(DEVROOT) LIBDEST=$(DEVROOT) -#CLIB = /MD -CLIB = /MT -CCFLAGS = #/EHsc /TP /D_cplusplus +DLLS = pthreadVCE.dll pthreadVSE.dll + +# C++ Exceptions +VCEFLAGS = /GX /TP /DPtW32NoCatchWarn +#Structured Exceptions +VSEFLAGS = + +CFLAGS = /W3 /MT /nologo /Yd /Zi /I. /D_WIN32_WINNT=0x400 OBJ=attr.obj \ cancel.obj \ @@ -35,33 +40,37 @@ OBJ=attr.obj \ sync.obj \ tsd.obj -all: pthread.dll +all: + @ echo Run one of the following command lines: + @ echo nmake clean VCE (to build the dll with C++ exception handling) + @ echo nmake clean VSE (to build the dll with structured exception handling) + +VCE: + @ nmake /nologo EHFLAGS="$(VCEFLAGS)" pthreadVCE.dll + +VSE: + @ nmake /nologo EHFLAGS="$(VSEFLAGS)" pthreadVSE.dll + +realclean: clean + del *.dll + del *.lib clean: - del pthread.dll - del pthread.lib del *.obj del *.ilk del *.pdb + del *.exp del *.o -install: all - copy pthread.dll $(DLLDEST) - copy pthread.lib $(LIBDEST) - -pthread.dll: $(OBJ) pthread.def - cl /LD /Zi $(CFLAGS) $(OBJ) /Fepthread.dll /link \ - /nodefaultlib:libcmt \ - /implib:pthread.lib \ - msvcrt.lib \ - /def:pthread.def - -.c.obj:: - cl /W3 $(CLIB) $(CFLAGS) /nologo /Yd /Zi /I. \ - /D_WIN32_WINNT=0x400 \ - /DSTDCALL=_stdcall \ - -c $< +install: $(DLLS) + copy pthread*.dll $(DLLDEST) + copy pthread*.lib $(LIBDEST) -$(OBJ): +$(DLLS): $(OBJ) pthread.def + cl /LD /Zi /nologo $(OBJ) \ + /link /nodefaultlib:libcmt /implib:$*.lib \ + msvcrt.lib /def:pthread.def /out:$@ +.c.obj: + cl $(EHFLAGS) $(CFLAGS) -c $< -- cgit v1.2.3