Annotation of embedaddon/curl/lib/Makefile.vxworks, revision 1.1

1.1     ! misho       1: #***************************************************************************
        !             2: #                                  _   _ ____  _
        !             3: #  Project                     ___| | | |  _ \| |
        !             4: #                             / __| | | | |_) | |
        !             5: #                            | (__| |_| |  _ <| |___
        !             6: #                             \___|\___/|_| \_\_____|
        !             7: #
        !             8: # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
        !             9: #
        !            10: # This software is licensed as described in the file COPYING, which
        !            11: # you should have received as part of this distribution. The terms
        !            12: # are also available at https://curl.haxx.se/docs/copyright.html.
        !            13: #
        !            14: # You may opt to use, copy, modify, merge, publish, distribute and/or sell
        !            15: # copies of the Software, and permit persons to whom the Software is
        !            16: # furnished to do so, under the terms of the COPYING file.
        !            17: #
        !            18: # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
        !            19: # KIND, either express or implied.
        !            20: #
        !            21: ###########################################################################
        !            22: #*****************************************************************************
        !            23: #
        !            24: #
        !            25: #Filename   : Makefile.vxworks
        !            26: #Description: makefile to be used in order to compile libcurl for VxWoorks 6.3.
        !            27: #
        !            28: #How to use:
        !            29: #             1. Adjust environment variables at the file beginning
        !            30: #             2. Open the Command Prompt window and change directory ('cd')
        !            31: #                into the 'lib' folder
        !            32: #             3. Add <CYGWIN>/bin folder to the PATH environment variable
        !            33: #                For example type 'set PATH=C:/embedded/cygwin/bin;%PATH%'
        !            34: #             4. Build the library by typing 'make -f ./Makefile.vxworks'
        !            35: #             As a result the libcurl.a should be created in the 'lib' folder.
        !            36: #             To clean package use 'make -f ./Makefile.vxworks clean'
        !            37: #Requirements:
        !            38: #             1. WinXP machine
        !            39: #             2. Full CYGWIN installation (open source) with GNU make version
        !            40: #                v3.78 or higher
        !            41: #             3. WindRiver Workbench with vxWorks 6.3 (commercial)
        !            42: #*****************************************************************************
        !            43: 
        !            44: # ----------------------------------------------------------------------
        !            45: # Environment
        !            46: # ----------------------------------------------------------------------
        !            47: 
        !            48: export WIND_HOME := C:/embedded/Workbench2.5.0.1
        !            49: export WIND_BASE := $(WIND_HOME)/vxworks-6.3
        !            50: export WIND_HOST_TYPE := x86-win32
        !            51: 
        !            52: # BUILD_TYE:= <debug>|<release> (build with debugging info or optimized)
        !            53: BUILD_TYPE := debug
        !            54: USER_CFLAGS:=
        !            55: 
        !            56: # directories where to seek for includes and libraries
        !            57: OPENSSL_INC := D:/libraries/openssl/openssl-0.9.8zc-vxWorks6.3/include
        !            58: OPENSSL_LIB := D:/libraries/openssl/openssl-0.9.8zc-vxWorks6.3
        !            59: ZLIB_INC    := D:/libraries/zlib/zlib-1.2.8-VxWorks6.3/zlib-1.2.8
        !            60: ZLIB_LIB    := D:/libraries/zlib/zlib-1.2.8-VxWorks6.3/binaries/vxworks_3.1_gnu/Debug/lib
        !            61: ARES_INC    :=
        !            62: ARES_LIB    :=
        !            63: 
        !            64: 
        !            65: # ----------------------------------------------------------------------
        !            66: # Compiler
        !            67: # ----------------------------------------------------------------------
        !            68: 
        !            69: CC := ccppc
        !            70: AR := arppc
        !            71: LINK := ccppc
        !            72: CFLAGS := -D__GNUC__ -D__ppc__ -msoft-float -fno-builtin -mcpu=604 -mlongcall -DCPU=PPC604 -D_GNU_TOOL -Wall -W -Winline $(USER_CFLAGS)
        !            73: LDFLAGS := -nostdlib -Wl,-i -Wl,-X
        !            74: INCLUDE_FLAG := -I
        !            75: C_DEBUGFLAG := -g
        !            76: C_OPTFLAG := -O2
        !            77: COMPILE_ONLY_FLAG := -c
        !            78: OBJ_EXTENSION := .o
        !            79: CC_OBJ_OUTPUT = -o $@
        !            80: ARFLAGS := -rc
        !            81: LIBS_FLAG := -l
        !            82: LIBS_DIRFLAG:= -L
        !            83: LD_DEBUGFLAG := $(C_DEBUGFLAG)
        !            84: EXECUTE_EXTENSION := .out
        !            85: TOOL_CHAIN_BIN := $(WIND_HOME)/gnu/3.4.4-vxworks-6.3/$(WIND_HOST_TYPE)/bin/
        !            86: 
        !            87: # ----------------------------------------------------------------------
        !            88: 
        !            89: # Add -DINET6 if the OS kernel image was built with IPv6 support
        !            90: # CFLAGS += -DINET6
        !            91: 
        !            92: # Set up compiler and linker flags for debug or optimization
        !            93: ifeq ($(BUILD_TYPE), debug)
        !            94: CFLAGS += $(C_DEBUGFLAG)
        !            95: LDFLAGS += $(LD_DEBUGFLAG)
        !            96: else
        !            97: CFLAGS += $(C_OPTFLAG)
        !            98: endif
        !            99: 
        !           100: # ----------------------------------------------------------------------
        !           101: 
        !           102: # Main Makefile and possible sub-make files
        !           103: MAKEFILES := Makefile.vxworks
        !           104: 
        !           105: # List of external include directories
        !           106: #-----
        !           107: # IMPORTANT: include OPENSSL directories before system
        !           108: #            in order to prevent WindRiver OpenSSL to be used.
        !           109: #-----
        !           110: INCLUDE_DIRS := ../include $(OPENSSL_INC) $(ZLIB_INC) $(ARES_INC) $(WIND_BASE)/target/h $(WIND_BASE)/target/h/wrn/coreip
        !           111: 
        !           112: # List of external libraries and their directories
        !           113: LIBS_LIST := .
        !           114: LIB_DIRS  := .
        !           115: ifneq ($(OPENSSL_LIB), )
        !           116: LIBS_LIST += crypto ssl
        !           117: LIB_DIRS  += $(OPENSSL_LIB)
        !           118: endif
        !           119: ifneq ($(ZLIB_LIB), )
        !           120: LIBS_LIST += z
        !           121: LIB_DIRS  += $(ZLIB_LIB)
        !           122: endif
        !           123: ifneq ($(ARES_LIB), )
        !           124: LIBS_LIST += ares
        !           125: LIB_DIRS  += $(ARES_LIB)
        !           126: endif
        !           127: 
        !           128: # Add include and library directories and libraries
        !           129: CFLAGS += $(INCLUDE_DIRS:%=$(INCLUDE_FLAG)%)
        !           130: LDFLAGS += $(LIB_DIRS:%=$(LIBS_DIRFLAG)%)
        !           131: 
        !           132: # List of targets to make for libs target
        !           133: LIBS_TARGET_LIST := libcurl.a
        !           134: 
        !           135: # List of execuatble applications to make in addition to libs for all target
        !           136: EXE_TARGET_LIST :=
        !           137: 
        !           138: # Support for echoing rules
        !           139: # If ECHORULES variable was set (for example, using 'make' command line)
        !           140: #  some shell commands in the rules will be echoed
        !           141: ifneq ($(strip $(findstring $(ECHORULES), yes YES 1 true TRUE)),)
        !           142: _@_ :=
        !           143: else
        !           144: _@_ := @
        !           145: endif
        !           146: 
        !           147: # Directory to hold compilation intermediate files
        !           148: TMP_DIR := tmp
        !           149: 
        !           150: # Get sources and headers to be compiled
        !           151: include Makefile.inc
        !           152: 
        !           153: # List of headers
        !           154: INCLUDE_FILES := $(HHEADERS)
        !           155: INCLUDE_FILES += $(shell find ../include -name \*.h)
        !           156: 
        !           157: # List of sources
        !           158: OBJLIST := $(CSOURCES:%.c=$(TMP_DIR)/%$(OBJ_EXTENSION))
        !           159: 
        !           160: 
        !           161: # ----------------------------------------------------------------------
        !           162: 
        !           163: #### default rule
        !           164: # It should be first rule in this file
        !           165: .PHONY: default
        !           166: default: libcurl.a
        !           167: 
        !           168: #### Compiling C files
        !           169: $(TMP_DIR)/%$(OBJ_EXTENSION): %.c $(MAKEFILES)
        !           170:        @echo Compiling C file $< $(ECHO_STDOUT)
        !           171:        @[ -d $(@D) ] || mkdir -p $(@D)
        !           172:        $(_@_) $(TOOL_CHAIN_BIN)$(CC) $(COMPILE_ONLY_FLAG) $(CFLAGS) $< $(CC_OBJ_OUTPUT)
        !           173: 
        !           174: #### Creating library
        !           175: $(LIBS_TARGET_LIST): $(INCLUDE_FILES) $(MAKEFILES) $(OBJLIST)
        !           176:        @echo Creating library $@ $(ECHO_STDOUT)
        !           177:        $(_@_) [ -d $(@D) ] || mkdir -p $(@D)
        !           178:        $(_@_) rm -f $@
        !           179:        $(_@_) $(TOOL_CHAIN_BIN)$(AR) $(ARFLAGS) $@ $(filter %$(OBJ_EXTENSION), $^)
        !           180: 
        !           181: #### Creating application
        !           182: $(EXE_TARGET_LIST): $(INCLUDE_FILES) $(MAKEFILES) $(LIBS_TARGET_LIST)
        !           183:        @echo Creating application $@
        !           184:        @[ -d $(@D) ] || mkdir -p $(@D)
        !           185:        $(_@_) $(TOOL_CHAIN_BIN)$(LINK) $(CC_OBJ_OUTPUT) $($(@)_EXE_OBJ_LIST) $(LDFLAGS) $($(@)_EXE_LIBS_NEEDED:%=$(LIBS_FLAG)%) $(LIBS_LIST:%=$(LIBS_FLAG)%) $(USER_LIBS_LIST) $(USER_LIBS_LIST)
        !           186: 
        !           187: #### Master Targets
        !           188: libs: $(LIBS_TARGET_LIST)
        !           189:        @echo All libs made.
        !           190: 
        !           191: all: $(LIBS_TARGET_LIST) $(EXE_TARGET_LIST) $(INCLUDE_TARGET_LIST)
        !           192:        @echo All targets made.
        !           193: 
        !           194: # Clean up
        !           195: .PHONY: clean
        !           196: clean:
        !           197:        $(_@_) rm -rf $(TMP_DIR)
        !           198:        @echo libcurl was cleaned.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>