67 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
# usage: nmake /f Makefile.windows [clean]
 | 
						|
# /*----------------------------------------------------------------------------*/
 | 
						|
# /*                                                                            */
 | 
						|
# /* Copyright (c) 2021 Rexx Language Association. All rights reserved.         */
 | 
						|
# /*                                                                            */
 | 
						|
# /* This program and the accompanying materials are made available under       */
 | 
						|
# /* the terms of the Common Public License v1.0 which accompanies this         */
 | 
						|
# /* distribution. A copy is also available at the following address:           */
 | 
						|
# /* https://www.oorexx.org/license.html                                        */
 | 
						|
# /*                                                                            */
 | 
						|
# /* Redistribution and use in source and binary forms, with or                 */
 | 
						|
# /* without modification, are permitted provided that the following            */
 | 
						|
# /* conditions are met:                                                        */
 | 
						|
# /*                                                                            */
 | 
						|
# /* Redistributions of source code must retain the above copyright             */
 | 
						|
# /* notice, this list of conditions and the following disclaimer.              */
 | 
						|
# /* Redistributions in binary form must reproduce the above copyright          */
 | 
						|
# /* notice, this list of conditions and the following disclaimer in            */
 | 
						|
# /* the documentation and/or other materials provided with the distribution.   */
 | 
						|
# /*                                                                            */
 | 
						|
# /* Neither the name of Rexx Language Association nor the names                */
 | 
						|
# /* of its contributors may be used to endorse or promote products             */
 | 
						|
# /* derived from this software without specific prior written permission.      */
 | 
						|
# /*                                                                            */
 | 
						|
# /* THIS SOFTWARE IS PROVIDED BY THE COPYright HOLDERS AND CONTRIBUTORS        */
 | 
						|
# /* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT          */
 | 
						|
# /* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS          */
 | 
						|
# /* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYright   */
 | 
						|
# /* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,      */
 | 
						|
# /* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED   */
 | 
						|
# /* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,        */
 | 
						|
# /* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY     */
 | 
						|
# /* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING    */
 | 
						|
# /* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS         */
 | 
						|
# /* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.               */
 | 
						|
# /*                                                                            */
 | 
						|
# /*----------------------------------------------------------------------------*/
 | 
						|
 | 
						|
!IF DEFINED(REXX_HOME)
 | 
						|
INCLUDE = $(INCLUDE);$(REXX_HOME)\api
 | 
						|
LIB = $(LIB);$(REXX_HOME)\api
 | 
						|
!ENDIF
 | 
						|
 | 
						|
WARNINGFLAGS = /W3 /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
 | 
						|
 | 
						|
REXX_LIBS = rexxapi.lib
 | 
						|
OOREXX_CFLAGS = /nologo /EHsc /O2 /Gs /FAcs /MT $(WARNINGFLAGS) /c
 | 
						|
DLL_LFLAGS = /nologo /SUBSYSTEM:Windows $(REXX_LIBS) /DLL
 | 
						|
 | 
						|
# default targets
 | 
						|
all:  external_routines external_methods external_methods_routines
 | 
						|
 | 
						|
external_routines:
 | 
						|
	cl $(OOREXX_CFLAGS) /Fo$(@B).obj  $(@B).cpp
 | 
						|
	link $(DLL_LFLAGS) $(@B).obj -out:$(@B).dll
 | 
						|
 | 
						|
external_methods:
 | 
						|
	cl $(OOREXX_CFLAGS) /Fo$(@B).obj  $(@B).cpp
 | 
						|
	link $(DLL_LFLAGS) $(@B).obj -out:$(@B).dll
 | 
						|
 | 
						|
external_methods_routines:
 | 
						|
	cl $(OOREXX_CFLAGS) /Fo$(@B).obj  $(@B).cpp
 | 
						|
	link $(DLL_LFLAGS) $(@B).obj -out:$(@B).dll
 | 
						|
 | 
						|
clean:
 | 
						|
	del *.exe *.dll *.obj *.ilk *.pdb *.lib *.exp *.suo *.cod 1>nul 2>&1
 |