Files correlati : Commento : Spostamento in libraries delle librerie esterne di Campo per una maggiore pulizia e organizzazione git-svn-id: svn://10.65.10.50/branches/R_10_00@24150 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			282 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			282 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # Makefile for building curlpp with MSVC
 | |
| # Giuseppe "Cowo" Corbelli - cowo.lugbs.linux.it
 | |
| # Piotr Dobrogost - pd.curlpp.org (February 2009 - March 2009)
 | |
| #
 | |
| # Usage:
 | |
| # nmake /f makefile.msvc BUILD_CFG=[dynamic|static]-[debug|release]
 | |
| #                        RTLIB_CFG=[dynamic|static]-[debug|release]
 | |
| #                        LIBCURL_CFG=[dynamic|static]-[debug|release]
 | |
| #
 | |
| # All options are optional
 | |
| # Default for BUILD_CFG is dynamic-release
 | |
| # Default for others is the value of BUILD_CFG
 | |
| #
 | |
| # Should be invoked from curlpp directory
 | |
| # Edit the LIBCURL_PATH or set LIBCURL_PATH envvar !
 | |
| 
 | |
| 
 | |
| # DEFAULTS SECTION - default values of some variables
 | |
| #####################################################
 | |
| 
 | |
| LIB_NAME            = curlpp
 | |
| LIBCURL_NAME        = libcurl
 | |
| DEFAULT_DIR_OUT     = .\out\$(BUILD_CFG)
 | |
| DEFAULT_LIBCURL_PATH= c:\program files (x86)\libcurl
 | |
| 
 | |
| DEFAULT_SELF_CONTAINED = yes
 | |
| 
 | |
| DEFAULT_BUILD_TYPE  = dynamic
 | |
| DEFAULT_BUILD_MODE  = release
 | |
| 
 | |
| 
 | |
| !IFNDEF SELF_CONTAINED
 | |
| SELF_CONTAINED  	= $(DEFAULT_SELF_CONTAINED)
 | |
| !ENDIF
 | |
| 
 | |
| 
 | |
| !IFNDEF BUILD_CFG
 | |
| BUILD_CFG           = $(DEFAULT_BUILD_TYPE)-$(DEFAULT_BUILD_MODE)
 | |
| !ENDIF
 | |
| 
 | |
| !IFNDEF RTLIB_CFG
 | |
| RTLIB_CFG           = $(BUILD_CFG)
 | |
| !ENDIF
 | |
| 
 | |
| !IFNDEF LIBCURL_CFG
 | |
| LIBCURL_CFG         = $(BUILD_CFG)
 | |
| !ENDIF
 | |
| 
 | |
| 
 | |
| !IFNDEF LIBCURL_PATH
 | |
| LIBCURL_PATH          = $(DEFAULT_LIBCURL_PATH)
 | |
| !ENDIF
 | |
| 
 | |
| !IFNDEF DIR_OUT
 | |
| DIR_OUT             = $(DEFAULT_DIR_OUT)
 | |
| !ENDIF
 | |
| DIR_OBJ             = $(DIR_OUT)\obj
 | |
| TARGET              = $(LIB_NAME)$(TARGET_SUFFIX)
 | |
| 
 | |
| 
 | |
| # GLOBAL SECTION - common options needed for DEBUG/RELEASE and DYNAMIC/STATIC variants of builds
 | |
| ################################################################################################
 | |
| 
 | |
| # BASE entity
 | |
| 
 | |
| # definitions to be used in following compiler part
 | |
| 
 | |
| COMPILER            = cl.exe
 | |
| 
 | |
| C_DEFS              = /DWIN32 /DBUILDING_CURLPP
 | |
| !IF "$(SELF_CONTAINED)" == "yes"
 | |
| C_DEFS              = $(C_DEFS) /DCURLPP_SELF_CONTAINED
 | |
| !ENDIF
 | |
| C_INCLUDES          = /I "./include"
 | |
| CFLAGS_STD          = $(C_INCLUDES) $(C_DEFS) /nologo /W0 /EHsc /FD /c
 | |
| 
 | |
| CFLAGS_DYNAMIC      = /UCURLPP_STATICLIB
 | |
| CFLAGS_STATIC       = /DCURLPP_STATICLIB
 | |
| 
 | |
| CFLAGS_DEBUG        = /D_DEBUG /Od /Gm /Zi /RTC1 /GR
 | |
| CFLAGS_RELEASE      = /DNDEBUG /O2 /GR
 | |
| 
 | |
| CFLAGS              =
 | |
| 
 | |
| # compiler part
 | |
| 
 | |
| !IF "$(BUILD_CFG)" == "dynamic-release"
 | |
| CFLAGS              = $(CFLAGS) $(CFLAGS_DYNAMIC) $(CFLAGS_RELEASE)
 | |
| !ENDIF
 | |
| !IF "$(BUILD_CFG)" == "dynamic-debug"
 | |
| CFLAGS              = $(CFLAGS) $(CFLAGS_DYNAMIC) $(CFLAGS_DEBUG)
 | |
| !ENDIF
 | |
| !IF "$(BUILD_CFG)" == "static-release"
 | |
| CFLAGS              = $(CFLAGS) $(CFLAGS_STATIC) $(CFLAGS_RELEASE)
 | |
| !ENDIF
 | |
| !IF "$(BUILD_CFG)" == "static-debug"
 | |
| CFLAGS              = $(CFLAGS) $(CFLAGS_STATIC) $(CFLAGS_DEBUG)
 | |
| !ENDIF
 | |
| 
 | |
| # definitions to be used in following linker part
 | |
| 
 | |
| LINKER              = link.exe
 | |
| 
 | |
| LFLAGS_STD          = /nologo /libpath:"$(LIBCURL_PATH)/lib"
 | |
| 
 | |
| LFLAGS_DYNAMIC      = /dll /release /debug /incremental:no /opt:noref
 | |
| LFLAGS_STATIC       = /lib
 | |
| 
 | |
| LFLAGS              =
 | |
| 
 | |
| # linker part
 | |
| 
 | |
| !IF "$(BUILD_CFG)" == "dynamic-release"
 | |
| LFLAGS              = $(LFLAGS) $(LFLAGS_DYNAMIC)
 | |
| !ENDIF
 | |
| !IF "$(BUILD_CFG)" == "dynamic-debug"
 | |
| LFLAGS              = $(LFLAGS) $(LFLAGS_DYNAMIC)
 | |
| !ENDIF
 | |
| !IF "$(BUILD_CFG)" == "static-release"
 | |
| LFLAGS              = $(LFLAGS) $(LFLAGS_STATIC)
 | |
| !ENDIF
 | |
| !IF "$(BUILD_CFG)" == "static-debug"
 | |
| LFLAGS              = $(LFLAGS) $(LFLAGS_STATIC)
 | |
| !ENDIF
 | |
| 
 | |
| # RUN-TIME entity
 | |
| 
 | |
| # compiler part
 | |
| 
 | |
| !IF "$(RTLIB_CFG)" == "dynamic-release"
 | |
| CFLAGS              = /MD $(CFLAGS)
 | |
| !ENDIF
 | |
| !IF "$(RTLIB_CFG)" == "dynamic-debug"
 | |
| CFLAGS              = /MDd $(CFLAGS)
 | |
| !ENDIF
 | |
| !IF "$(RTLIB_CFG)" == "static-release"
 | |
| CFLAGS              = /MT $(CFLAGS)
 | |
| !ENDIF
 | |
| !IF "$(RTLIB_CFG)" == "static-debug"
 | |
| CFLAGS              = /MTd $(CFLAGS)
 | |
| !ENDIF
 | |
| 
 | |
| # linker part
 | |
| # none
 | |
| 
 | |
| 
 | |
| # DEPENDENCIES SECTION
 | |
| ######################
 | |
| 
 | |
| CFLAGS_DEPENDENCIES = 
 | |
| LFLAGS_DEPENDENCIES = 
 | |
| 
 | |
| # LIBCURL
 | |
| 
 | |
| # definitions to be used in following compiler part
 | |
| CFLAGS_LIBCURL      = /I "$(LIBCURL_PATH)/include"
 | |
| 
 | |
| # compiler part
 | |
| !IF "$(LIBCURL_CFG)" == "dynamic-release"
 | |
| CFLAGS              = $(CFLAGS) $(CFLAGS_LIBCURL)
 | |
| !ENDIF
 | |
| !IF "$(LIBCURL_CFG)" == "dynamic-debug"
 | |
| CFLAGS              = $(CFLAGS) $(CFLAGS_LIBCURL)
 | |
| !ENDIF
 | |
| !IF "$(LIBCURL_CFG)" == "static-release"
 | |
| CFLAGS              = $(CFLAGS) $(CFLAGS_LIBCURL)
 | |
| !ENDIF
 | |
| !IF "$(LIBCURL_CFG)" == "static-debug"
 | |
| CFLAGS              = $(CFLAGS) $(CFLAGS_LIBCURL)
 | |
| !ENDIF
 | |
| 
 | |
| 
 | |
| # libcurl configuration - linker part
 | |
| !IF "$(LIBCURL_CFG)" == "dynamic-release"
 | |
| LFLAGS_DEPENDENCIES = $(LFLAGS_DEPENDENCIES) $(LIBCURL_NAME)$(TARGET_SUFFIX).lib
 | |
| !ENDIF
 | |
| !IF "$(LIBCURL_CFG)" == "dynamic-debug"
 | |
| LFLAGS_DEPENDENCIES = $(LFLAGS_DEPENDENCIES) $(LIBCURL_NAME)$(TARGET_SUFFIX).lib
 | |
| !ENDIF
 | |
| !IF "$(LIBCURL_CFG)" == "static-release"
 | |
| LFLAGS_DEPENDENCIES = $(LFLAGS_DEPENDENCIES) $(LIBCURL_NAME)$(TARGET_SUFFIX).lib
 | |
| !ENDIF
 | |
| !IF "$(LIBCURL_CFG)" == "static-debug"
 | |
| LFLAGS_DEPENDENCIES = $(LFLAGS_DEPENDENCIES) $(LIBCURL_NAME)$(TARGET_SUFFIX).lib
 | |
| !ENDIF
 | |
| 
 | |
| # TARGET
 | |
| 
 | |
| # compiler part
 | |
| # none
 | |
| 
 | |
| # definitions to be uses in following linker part
 | |
| 
 | |
| LNK_OUT             = /out:$(DIR_OUT)\$(TARGET)
 | |
| LNK_OUT_IMP         = /implib:$(DIR_OUT)\$(TARGET).lib
 | |
| LNK_OUT_PDB         = /pdb:$(DIR_OUT)\$(TARGET).pdb
 | |
| 
 | |
| # linker part
 | |
| !IF "$(BUILD_CFG)" == "dynamic-release"
 | |
| LFLAGS              = $(LFLAGS) $(LNK_OUT).dll $(LNK_OUT_IMP) $(LNK_OUT_PDB)
 | |
| !ENDIF
 | |
| !IF "$(BUILD_CFG)" == "dynamic-debug"
 | |
| LFLAGS              = $(LFLAGS) $(LNK_OUT).dll $(LNK_OUT_IMP) $(LNK_OUT_PDB)
 | |
| !ENDIF
 | |
| !IF "$(BUILD_CFG)" == "static-release"
 | |
| LFLAGS              = $(LFLAGS) $(LNK_OUT).lib
 | |
| !ENDIF
 | |
| !IF "$(BUILD_CFG)" == "static-debug"
 | |
| LFLAGS              = $(LFLAGS) $(LNK_OUT).lib
 | |
| !ENDIF
 | |
| 
 | |
| !IF "$(BUILD_CFG)" == "dynamic-release"
 | |
| TARGET_SUFFIX       = MD
 | |
| !ENDIF
 | |
| !IF "$(BUILD_CFG)" == "dynamic-debug"
 | |
| TARGET_SUFFIX       = MDd
 | |
| !ENDIF
 | |
| !IF "$(BUILD_CFG)" == "static-release"
 | |
| TARGET_SUFFIX       = MT
 | |
| !ENDIF
 | |
| !IF "$(BUILD_CFG)" == "static-debug"
 | |
| TARGET_SUFFIX       = MTd
 | |
| !ENDIF
 | |
| 
 | |
| CC            = $(COMPILER) $(CFLAGS) $(CFLAGS_STD)
 | |
| LNK           = $(LINKER) $(LFLAGS) $(LFLAGS_DEPENDENCIES) $(LFLAGS_STD) 
 | |
| 
 | |
| X_OBJS= \
 | |
| 	$(DIR_OBJ)/CurlHandle.o \
 | |
| 	$(DIR_OBJ)/cURLpp.o \
 | |
| 	$(DIR_OBJ)/Exception.o \
 | |
| 	$(DIR_OBJ)/Easy.o \
 | |
| 	$(DIR_OBJ)/Form.o \
 | |
| 	$(DIR_OBJ)/Info.o \
 | |
| 	$(DIR_OBJ)/Multi.o \
 | |
| 	$(DIR_OBJ)/OptionBase.o \
 | |
| 	$(DIR_OBJ)/OptionList.o \
 | |
| 	$(DIR_OBJ)/OptionSetter.o \
 | |
| 	$(DIR_OBJ)/SList.o \
 | |
| 
 | |
| all : $(DIR_OUT)$(TARGET)
 | |
| 
 | |
| $(DIR_OUT)$(TARGET): $(X_OBJS)
 | |
| 	$(LNK) $(X_OBJS)
 | |
| 
 | |
| $(X_OBJS): $(DIR_OBJ) $(DIR_OUT)
 | |
| 
 | |
| $(DIR_OBJ):
 | |
| 	@if not exist "$(DIR_OBJ)" mkdir $(DIR_OBJ)
 | |
| 
 | |
| $(DIR_OUT):
 | |
| 	@if not exist "$(DIR_OUT)" mkdir $(DIR_OUT)
 | |
| 
 | |
| 	
 | |
| .SUFFIXES: .cpp .obj
 | |
| 
 | |
| {.\src\curlpp}.cpp{$(DIR_OBJ)\}.o:
 | |
| 	$(CC) $(CFLAGS) /Fo"$@"  $<
 | |
| 	
 | |
| {.\src\curlpp\internal}.cpp{$(DIR_OBJ)\}.o:
 | |
| 	$(CC) $(CFLAGS) /Fo"$@"  $<
 | |
| 
 | |
| clean:
 | |
| 	@-erase /s $(DIR_OUT)\*.dll 2> NUL
 | |
| 	@-erase /s $(DIR_OUT)\*.exp 2> NUL
 | |
| 	@-erase /s $(DIR_OUT)\*.idb 2> NUL
 | |
| 	@-erase /s $(DIR_OUT)\*.lib 2> NUL
 | |
| 	@-erase /s $(DIR_OUT)\*.o   2> NUL
 | |
| 	@-erase /s $(DIR_OUT)\*.pch 2> NUL
 | |
| 	@-erase /s $(DIR_OUT)\*.pdb 2> NUL
 | |
| 	@-erase /s $(DIR_OUT)\*.res 2> NUL
 | |
| 	@-erase /s $(DIR_OUT)\*.manifest 2> NUL	
 | |
| 
 | |
| help options usage :
 | |
| 	@echo "Usage: nmake /f makefile.msvc \
 | |
|     BUILD_CFG=[dynamic|static]-[debug|release] \
 | |
| 	RTLIB_CFG=[dynamic|static]-[debug|release] \
 | |
| 	LIBCURL_CFG=[dynamic|static]-[debug|release] \
 | |
|     All options are optional \
 | |
|     Default for BUILD_CFG is dynamic-release \
 | |
|     Default for others is the value of BUILD_CFG"
 |