⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 port.mak

📁 picoos源码。The RTOS and the TCP/IP stack will be built automatically.
💻 MAK
字号:
#  Copyright (c) 2004-2005, Dennis Kuschel / Swen Moczarski
#  All rights reserved. 
#
#  Redistribution and use in source and binary forms, with or without
#  modification, are permitted provided that the following conditions
#  are met:
#
#   1. Redistributions of source code must retain the above copyright
#      notice, this list of conditions and the following disclaimer.
#   2. 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.
#   3. The name of the author may not be used to endorse or promote
#      products derived from this software without specific prior written
#      permission. 
#
#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.


#  This file is originally from the pico]OS realtime operating system
#  (http://picoos.sourceforge.net).
#
#  $Id: port.mak,v 1.6 2006/04/14 13:43:50 dkuschel Exp $


# Set default compiler.
# Possible compilers are GCC (GNU C) and VC6 (MS Visual C++ V6.0).
#
#COMPILER = GCC
#COMPILER = VC6

# Try to determine the installed compiler. Seach for MS VC6.
ifeq '$(strip $(COMPILER))' ''
ifneq '$(findstring Microsoft,$(shell lib))' ''
COMPILER = VC6
$(warning COMPILER not specified, trying MS VC++ 6.0)
else
COMPILER = GCC
$(warning COMPILER not specified, trying GCC (MinGW))
endif
endif
export COMPILER


# Set to 1 to include generic pico]OS "findbit" function
GENERIC_FINDBIT = 1


#----------------------------------------------------------------------------
#  MS Visual C++ Compiler
#
ifeq '$(COMPILER)' 'VC6'

# Define extensions
EXT_C   = .c
EXT_ASM = .asm
EXT_OBJ = .obj
EXT_LIB = .lib
EXT_OUT = .exe
PRE_LIB =

# Define tools: compiler, assembler, archiver, linker
CC = cl
AS = masm
AR = lib
LD = link

# Define to 1 if CC outputs an assembly file
CC2ASM = 0

# Define to 1 if assembler code must be preprocessed by the compiler
A2C2A  = 0

# Define general options
OPT_CC_INC   = /I
OPT_CC_DEF   = /D
OPT_AS_INC   = /I
OPT_AS_DEF   = /D
OPT_AR_ADD   =
OPT_LD_SEP   = 
OPT_LD_PFOBJ = 
OPT_LD_PFLIB = 
OPT_LD_FIRST =
OPT_LD_LAST  = kernel32.lib user32.lib winmm.lib

# Set global defines for compiler / assembler
CDEFINES =
ADEFINES =

# Set global includes
#CINCLUDES =
#AINCLUDES =

# Distinguish between build modes
ifeq '$(BUILD)' 'DEBUG'
  CFLAGS   += /nologo /Od /W3 /ZI /c /MT
  CDEFINES += _DBG
  ADEFINES += _DBG
else
  CFLAGS   += /nologo /O2 /W3 /c /MT
  CDEFINES += _REL
  ADEFINES += _REL
endif

# Define Compiler Flags
CFLAGS += /Fo

# Define Assembler Flags
ASFLAGS +=

# Define Linker Flags
ifeq '$(BUILD)' 'DEBUG'
LDFLAGS = /debug
endif
LDFLAGS += /nologo /subsystem:console /incremental:yes /machine:I386 /out:

# Define archiver flags
ARFLAGS = /NOLOGO /OUT:



#----------------------------------------------------------------------------
#  GNU C  (MinGW for MS Windows)
#
else

# Define extensions
EXT_C   = .c
EXT_ASM = .s
EXT_OBJ = .o
EXT_LIB = .a
EXT_OUT = .exe
PRE_LIB = lib

# Set path to the compiler
#GCC_DIR = E:/Programme/mingw

# If GCC_DIR is not set, try to find mingw-gcc in the DOS search path
ifeq '$(strip $(GCC_DIR))' ''
MNSEARCH = gcc.exe
MNEMPTY =
MNSPACE = $(MNEMPTY) $(MNEMPTY)
MNDRIVES = c: d: e: f: g: h:
MINGWTMP8 = $(firstword $(foreach mdir,$(MNDRIVES),$(wildcard $(mdir)/mingw/bin/$(MNSEARCH))))
ifneq '$(strip $(MINGWTMP8))' ''
GCC_DIR := $(subst /bin/$(MNSEARCH),,$(MINGWTMP8))
else
DOSSEARCHPATH = $(subst \,/,$(subst ;, ,$(subst $(MNSPACE),?,$(PATH))))
MINGWTMP0 := $(wildcard $(addsuffix /../../mingw/bin/$(MNSEARCH),$(DOSSEARCHPATH)))
MINGWTMP1 = $(subst $(MNSPACE),?,$(MINGWTMP0))
MINGWTMP2 = $(subst /bin/$(MNSEARCH)?,$(MNSPACE),$(MINGWTMP1))
MINGWTMP3 = $(subst /bin/$(MNSEARCH),,$(MINGWTMP2))
ifneq '$(strip $(MINGWTMP3))' ''
MINGWTMP4 = $(firstword $(MINGWTMP3))
MINGWTMP5 = $(subst /, ,$(MINGWTMP4))
MINGWTMP6 = $(subst $(word $(words $(MINGWTMP5)),** ** ** $(MINGWTMP5))/../,,$(MINGWTMP4))
MINGWTMP7 = $(subst $(word $(words $(MINGWTMP5)),** ** ** ** $(MINGWTMP5))/../,,$(MINGWTMP6))
ifneq '$(wildcard $(MINGWTMP7)/bin/$(MNSEARCH))' ''
GCC_DIR := $(subst ?,$(MNSPACE),$(MINGWTMP7))
endif
endif
endif
endif

# Check if we have now the GCC directory.
ifeq '$(strip $(GCC_DIR))' ''
ifeq '$(strip $(GCC_DIRWARNED))' ''
$(warning ******> GCC_DIR not set! Please set this variable to your\
 MinGW directory (see file x86w32/port.mak), otherwise you will not have\
 an accurate timer interrupt! <******)
export GCC_DIRWARNED=true
endif
GCC_BINDIR =
GCC_LIBDIR =
else
ifneq '$(GCC_DIR)' '$(firstword $(GCC_DIR))'
$(error ERROR: GCC is installed in a path that contains spaces: '$(GCC_DIR)')
endif
export GCC_DIR
GCC_BINDIR = $(GCC_DIR)/bin/
GCC_LIBDIR = $(GCC_DIR)/lib/
endif

# Define tools: compiler, assembler, archiver, linker
CC = $(GCC_BINDIR)gcc
AS = $(GCC_BINDIR)gcc
AR = $(GCC_BINDIR)ar
LD = $(GCC_BINDIR)gcc

# Define to 1 if CC outputs an assembly file
CC2ASM = 0

# Define to 1 if assembler code must be preprocessed by the compiler
A2C2A  = 0

# Set global defines for compiler / assembler
CDEFINES = GCC
ADEFINES = GCC

# Setup windows mmsystem library
ifeq '$(strip $(GCC_LIBDIR))' ''
LINKLIBS =
else
LINKLIBS = $(GCC_LIBDIR)libwinmm$(EXT_LIB)
CDEFINES += HAVEMMLIB
endif

# Define general options
OPT_CC_INC   = -I
OPT_CC_DEF   = -D
OPT_AS_INC   = -I
OPT_AS_DEF   = -D
OPT_AR_ADD   =
OPT_LD_SEP   =
OPT_LD_PFOBJ =
OPT_LD_PFLIB =
OPT_LD_FIRST =
OPT_LD_LAST  = $(LINKLIBS)

# Set global includes
CINCLUDES = .
AINCLUDES = .

# Distinguish between build modes
ifeq '$(BUILD)' 'DEBUG'
  CFLAGS   += -O0 -g
  AFLAGS   += -g
  CDEFINES += _DBG
  ADEFINES += _DBG
else
  CFLAGS   += -O3
  CDEFINES += _REL
  ADEFINES += _REL
endif

# Define Compiler Flags
CFLAGS +=  -pedantic -Wall -c -o

# Define Assembler Flags
ASFLAGS += -c -Wa,-mregnames -x assembler-with-cpp -o

# Define Linker Flags
ifneq '$(BUILD)' 'DEBUG'
LDFLAGS += -Wl,-s
endif
LDFLAGS += -mconsole -Wl,-Map,$(DIR_OUT)/$(TARGET).map \
          -Wl,--cref -o

# Define archiver flags
ARFLAGS = r 

endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -