* Added support for TARGET_DIR.
* Now uses g++ instead of gcc for C++ files. * Removed mwcc support. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32113 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
+15
-104
@@ -9,7 +9,7 @@ MACHINE=$(shell uname -m)
|
|||||||
ifeq ($(MACHINE), BePC)
|
ifeq ($(MACHINE), BePC)
|
||||||
CPU = x86
|
CPU = x86
|
||||||
else
|
else
|
||||||
CPU = ppc
|
CPU = $(MACHINE)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# set the directory where object files and binaries will be created
|
# set the directory where object files and binaries will be created
|
||||||
@@ -28,27 +28,27 @@ ifeq ($(DRIVER_PATH), )
|
|||||||
DRIVER_PATH = misc
|
DRIVER_PATH = misc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# specify that the binary should be created in the object directory
|
# specify the directory the binary should be created in by default
|
||||||
|
ifeq ($(TARGET_DIR), )
|
||||||
|
TARGET_DIR := $(OBJ_DIR)
|
||||||
|
endif
|
||||||
|
|
||||||
# NOTE: make doesn't find the target if its name is enclosed in
|
# NOTE: make doesn't find the target if its name is enclosed in
|
||||||
# quotation marks
|
# quotation marks
|
||||||
# TARGET := "$(OBJ_DIR)/$(NAME)"
|
TARGET := $(TARGET_DIR)/$(NAME)
|
||||||
TARGET := $(OBJ_DIR)/$(NAME)
|
|
||||||
|
|
||||||
# specify the mimeset tool
|
# specify the mimeset tool
|
||||||
MIMESET := mimeset
|
MIMESET := mimeset
|
||||||
|
|
||||||
# specify the tools for adding and removing resources
|
# specify the tools for adding and removing resources
|
||||||
XRES = xres
|
XRES := xres
|
||||||
|
|
||||||
# specify the tools for compiling resource definition files
|
# specify the tools for compiling resource definition files
|
||||||
RESCOMP = rc
|
RESCOMP := rc
|
||||||
|
|
||||||
# platform specific settings
|
|
||||||
|
|
||||||
# x86 Settings
|
|
||||||
ifeq ($(CPU), x86)
|
|
||||||
# set the compiler and compiler flags
|
# set the compiler and compiler flags
|
||||||
CC = gcc
|
CC := gcc
|
||||||
|
C++ := g++
|
||||||
|
|
||||||
# SETTING: set the CFLAGS for each binary type
|
# SETTING: set the CFLAGS for each binary type
|
||||||
ifeq ($(TYPE), DRIVER)
|
ifeq ($(TYPE), DRIVER)
|
||||||
@@ -73,8 +73,6 @@ ifeq ($(CPU), x86)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# SETTING: set proper debugger flags
|
# SETTING: set proper debugger flags
|
||||||
ifeq ($(DEBUGGER), TRUE)
|
ifeq ($(DEBUGGER), TRUE)
|
||||||
DEBUG += -g
|
DEBUG += -g
|
||||||
@@ -111,93 +109,6 @@ ifeq ($(CPU), x86)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
# ppc Settings
|
|
||||||
ifeq ($(CPU), ppc)
|
|
||||||
# set the compiler and compiler flags
|
|
||||||
CC = mwcc
|
|
||||||
CFLAGS +=
|
|
||||||
|
|
||||||
# SETTING: set the proper optimization level
|
|
||||||
ifeq ($(OPTIMIZE), FULL)
|
|
||||||
OPTIMIZER = -O7
|
|
||||||
else
|
|
||||||
ifeq ($(OPTIMIZE), SOME)
|
|
||||||
OPTIMIZER = -O3
|
|
||||||
else
|
|
||||||
ifeq ($(OPTIMIZE), NONE)
|
|
||||||
OPTIMIZER = -O0
|
|
||||||
else
|
|
||||||
# OPTIMIZE not set so set to full
|
|
||||||
OPTIMIZER = -O7
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
#set the proper debugger settings
|
|
||||||
ifeq ($(DEBUGGER), TRUE)
|
|
||||||
DEBUG += -g
|
|
||||||
endif
|
|
||||||
|
|
||||||
CFLAGS += $(OPTIMIZER) $(DEBUG)
|
|
||||||
|
|
||||||
# SETTING: set warning level
|
|
||||||
ifeq ($(WARNINGS), ALL)
|
|
||||||
CFLAGS += -w on -requireprotos
|
|
||||||
else
|
|
||||||
ifeq ($(WARNINGS), NONE)
|
|
||||||
CFLAGS += -w off
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
# clear the standard environment variable
|
|
||||||
# now there are no standard libraries to link against
|
|
||||||
BELIBFILES=
|
|
||||||
|
|
||||||
# set the linker and linker flags
|
|
||||||
LD = mwldppc
|
|
||||||
|
|
||||||
# SETTING: set linker flags for each binary type
|
|
||||||
ifeq ($(TYPE), APP)
|
|
||||||
LDFLAGS +=
|
|
||||||
else
|
|
||||||
ifeq ($(TYPE), SHARED)
|
|
||||||
LDFLAGS += -xms
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(TYPE), DRIVER)
|
|
||||||
LDFLAGS += -nodefaults \
|
|
||||||
-export all \
|
|
||||||
-G \
|
|
||||||
/boot/develop/lib/ppc/glue-noinit.a \
|
|
||||||
/boot/develop/lib/ppc/_KERNEL_
|
|
||||||
else
|
|
||||||
LDFLAGS += -export pragma \
|
|
||||||
-init _init_routine_ \
|
|
||||||
-term _term_routine_ \
|
|
||||||
-lroot \
|
|
||||||
/boot/develop/lib/ppc/glue-noinit.a \
|
|
||||||
/boot/develop/lib/ppc/init_term_dyn.o \
|
|
||||||
/boot/develop/lib/ppc/start_dyn.o
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
# SETTING: output symbols in an xMAP file
|
|
||||||
ifeq ($(SYMBOLS), TRUE)
|
|
||||||
LDFLAGS += -map $(TARGET).xMAP
|
|
||||||
endif
|
|
||||||
|
|
||||||
# SETTING: output debugging info to a .SYM file
|
|
||||||
ifeq ($(DEBUGGER), TRUE)
|
|
||||||
LDFLAGS += -g -osym $(TARGET).SYM
|
|
||||||
endif
|
|
||||||
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
# psuedo-function for converting a list of source files in SRCS variable
|
# psuedo-function for converting a list of source files in SRCS variable
|
||||||
# to a corresponding list of object files in $(OBJ_DIR)/xxx.o
|
# to a corresponding list of object files in $(OBJ_DIR)/xxx.o
|
||||||
# The "function" strips off the src file suffix (.ccp or .c or whatever)
|
# The "function" strips off the src file suffix (.ccp or .c or whatever)
|
||||||
@@ -337,17 +248,17 @@ $(OBJ_DIR)/%.d : %.CPP
|
|||||||
$(OBJ_DIR)/%.o : %.c
|
$(OBJ_DIR)/%.o : %.c
|
||||||
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
|
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
|
||||||
$(OBJ_DIR)/%.o : %.cpp
|
$(OBJ_DIR)/%.o : %.cpp
|
||||||
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
|
$(C++) -c $< $(INCLUDES) $(CFLAGS) -o $@
|
||||||
$(OBJ_DIR)/%.o : %.cp
|
$(OBJ_DIR)/%.o : %.cp
|
||||||
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
|
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
|
||||||
$(OBJ_DIR)/%.o : %.cc
|
$(OBJ_DIR)/%.o : %.cc
|
||||||
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
|
$(C++) -c $< $(INCLUDES) $(CFLAGS) -o $@
|
||||||
$(OBJ_DIR)/%.o : %.C
|
$(OBJ_DIR)/%.o : %.C
|
||||||
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
|
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
|
||||||
$(OBJ_DIR)/%.o : %.CC
|
$(OBJ_DIR)/%.o : %.CC
|
||||||
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
|
$(C++) -c $< $(INCLUDES) $(CFLAGS) -o $@
|
||||||
$(OBJ_DIR)/%.o : %.CPP
|
$(OBJ_DIR)/%.o : %.CPP
|
||||||
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
|
$(C++) -c $< $(INCLUDES) $(CFLAGS) -o $@
|
||||||
|
|
||||||
# rules to compile resource definition files
|
# rules to compile resource definition files
|
||||||
$(OBJ_DIR)/%.rsrc : %.rdef
|
$(OBJ_DIR)/%.rsrc : %.rdef
|
||||||
|
|||||||
Reference in New Issue
Block a user