X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=Makefile.common;h=e019689e44d8ff651178370e8cb9fa57cc2fe89a;hb=27bab459856ad7e06c5c9801722628e77a03e33c;hp=d476d8366fb613faaa941207d748b32160bc1510;hpb=e161b07644dec9d57640bc20d0256598e0caf5c9;p=simavr diff --git a/Makefile.common b/Makefile.common index d476d83..e019689 100644 --- a/Makefile.common +++ b/Makefile.common @@ -5,7 +5,7 @@ # # The code is compiled "optimized" to the max. # -# The wierd "-Wl,--undefined=_mmcu,--section-start=.mmcu=0x910000" +# The weird "-Wl,--undefined=_mmcu,--section-start=.mmcu=0x910000" # is used to tell the linker not to discard the .mmcu section, # otherwise the --gc-sections will delete it. # @@ -26,21 +26,33 @@ # You should have received a copy of the GNU General Public License # along with simavr. If not, see . +# simavr directory +SIMAVR ?= ${shell for p in . .. ../.. ../../..;do test -d $$p/simavr/sim && echo $$p/simavr; done} + +# You can override the build settings with local changes in this file +# for example: +# export CC=clang +# export CFLAGS=-march=corei7-avx +# etc +-include ${wildcard ${SIMAVR}/../.make.options*} + # get the first character of what the compiler says it is, unless it's 'x86_64' doh ARCH = ${shell $(CC) -dumpmachine | sed -e 's/^x/i/' -e 's/\(.\).*/\1/'} -ifeq ($(ARCH), i) -CFLAGS += -mfpmath=sse -msse2 -endif - -CFLAGS += -g --std=gnu99 -Wall -CFLAGS += ${patsubst %,-I%,${subst :, ,${IPATH}}} +CFLAGS += -O2 -Wall +CFLAGS += -g ifeq (${shell uname}, Darwin) +# gcc 4.2 from MacOS is really not up to scratch anymore +CC = clang AVR_ROOT := "/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/" AVR_INC := ${AVR_ROOT}/avr-4/ AVR := ${AVR_ROOT}/bin/avr- -LFLAGS += -L/opt/local/lib +# Thats for MacPorts libelf +ifeq (${shell test -d /opt/local && echo Exists}, Exists) +IPATH += /opt/local/include +LFLAGS = -L/opt/local/lib/ +endif else AVR_ROOT := /usr/lib/avr AVR_INC := ${AVR_ROOT} @@ -48,14 +60,17 @@ AVR := avr- CFLAGS += -fPIC endif -CC ?= gcc +CPPFLAGS += --std=gnu99 -Wall +CPPFLAGS += ${patsubst %,-I%,${subst :, ,${IPATH}}} + +AVR_CPPFLAGS= ${CPPFLAGS} -idirafter ${AVR_INC}/include + +CC ?= clang AR ?= ar RANLIB ?= ranlib MKDIR ?= mkdir -p INSTALL ?= install - -# simavr directory -SIMAVR ?= ${shell for p in . .. ../.. ../../..;do test -d $$p/simavr/sim && echo $$p/simavr; done} +SHELL := ${shell which bash} OBJ = obj-${shell $(CC) -dumpmachine} LIBDIR = ${shell pwd}/${SIMAVR}/${OBJ} @@ -70,7 +85,7 @@ endif # The code is compiled "optimized" to the max. # -# The wierd "-Wl,--undefined=_mmcu,--section-start=.mmcu=0x910000" +# The weird "-Wl,--undefined=_mmcu,--section-start=.mmcu=0x910000" # is used to tell the linker not to discard the .mmcu section, # otherwise the --gc-sections will delete it. @@ -98,22 +113,22 @@ endif # this rule has precedence ${OBJ}/sim_%.o : cores/sim_%.c ifeq ($(V),1) - $(CC) $(CFLAGS) -MMD \ - -I${AVR_INC}/include/ \ + $(CC) $(CPPFLAGS) $(CFLAGS) -MMD \ + ${AVR_CPPFLAGS} \ $< -c -o $@ else - @$(CC) $(CFLAGS) -MMD \ - -I${AVR_INC}/include/ \ + @$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS) -MMD \ + ${AVR_CPPFLAGS} \ $< -c -o $@ @echo CORE $< endif ${OBJ}/%.o: %.c ifeq ($(V),1) - $(CC) $(CFLAGS) -MMD \ + $(CC) $(CPPFLAGS) $(CFLAGS) -MMD \ $< -c -o $@ else - @$(CC) $(CFLAGS) -MMD \ + @$(CC) $(CPPFLAGS) $(CFLAGS) -MMD \ $< -c -o $@ @echo CC $< endif