Commit 6555655b51bae688058ae3ab2b596ae79b2fbf90
authorMichel Pollet <buserror@gmail.com>
Wed, 2 Aug 2017 10:05:56 +0000 (11:05 +0100)
committerMichel Pollet <buserror@gmail.com>
Wed, 2 Aug 2017 10:05:56 +0000 (11:05 +0100)
Now uses our own copy, this should help build simavr with support for
all cores, on all hosts

Signed-off-by: Michel Pollet <buserror@gmail.com>
2 files changed:
Makefile.common
simavr/Makefile

index aa89f686c9b896db019e6f40fee8fe1e183f92a8..d1afbe8d5537bd90fa962a8ee12e839c7a4f0962 100644 (file)
@@ -43,13 +43,12 @@ CFLAGS              += -O2 -Wall -Wextra -Werror -Wno-unused-parameter \
                        -Wno-unused-result -Wno-missing-field-initializers \
                        -Wno-sign-compare
 CFLAGS         += -g
-CORE_CFLAGS    = -nostdinc -DAVR_CORE=1
+CORE_CFLAGS    = -DAVR_CORE=1
 
 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/
  AVR           := ${AVR_ROOT}/bin/avr-
  # Thats for MacPorts libelf
  ifeq (${shell test -d /opt/local && echo Exists}, Exists)
@@ -62,7 +61,6 @@ ifeq (${shell uname}, Darwin)
   CC           = clang
   IPATH                += /opt/local/include /opt/local/include/libelf
   LFLAGS       = -L/opt/local/lib/
-  AVR_INC      := /opt/local/avr
   AVR          := /opt/local/bin/avr-
  else
   # That's for Homebrew libelf and avr-gcc support
@@ -79,17 +77,10 @@ ifeq (${shell uname}, Darwin)
    LFLAGS              = -L$(HOMEBREW_PREFIX)/lib/
    CFLAGS              += -I/$(HOMEBREW_PREFIX)/include/libelf
    AVR_ROOT            := $(firstword $(wildcard $(HOMEBREW_PREFIX)/Cellar/avr-libc/*/))
-   AVR_INC             := ${AVR_ROOT}/avr
    AVR                 := $(HOMEBREW_PREFIX)/bin/avr-
   endif
  endif
 else
- LINUX_AVR_ROOTS := /usr/lib/avr /usr/avr /opt/cross/avr/avr /usr/local/avr
- AVR_ROOT := $(firstword $(wildcard $(LINUX_AVR_ROOTS)))
- ifeq (${AVR_ROOT},)
-  $(error No avr-libc root directory found. Tried the following paths: $(LINUX_AVR_ROOTS))
- endif
- AVR_INC       := ${AVR_ROOT}
  AVR           := avr-
 endif
 
@@ -98,7 +89,6 @@ endif
 
 ifeq (${WIN}, Msys)
 AVR_ROOT    := ${shell echo "${AVR32_HOME}" | tr '\\' '/'}
-AVR_INC     := ${AVR_ROOT}/avr
 AVR         := ${AVR_ROOT}/bin/avr-
 IPATH       += ${PREFIX}/include
 CFLAGS      += -I${PREFIX}/include
@@ -111,7 +101,7 @@ endif
 CPPFLAGS       += --std=gnu99 -Wall
 CPPFLAGS       += ${patsubst %,-I%,${subst :, ,${IPATH}}}
 
-AVR_CPPFLAGS= ${CPPFLAGS} -idirafter ${AVR_INC}/include
+AVR_CPPFLAGS   = ${CPPFLAGS} -I${SIMAVR}/cores
 
 CC                     ?= clang
 AR                     ?= ar
@@ -141,6 +131,12 @@ LFLAGS             += -Wl,-rpath,${LIBDIR}
 endif
 endif
 
+ifeq (${V}, 1)
+E              =
+else
+E              = @
+endif
+
 # The code is compiled "optimized" to the max.
 #
 # The weird "-Wl,--undefined=_mmcu,--section-start=.mmcu=0x910000"
@@ -170,34 +166,25 @@ endif
 
 # this rule has precedence
 ${OBJ}/sim_%.o : cores/sim_%.c
-ifeq ($(V),1)
-       $(CC) $(CPPFLAGS) $(CFLAGS) $(CORE_CFLAGS) -MMD \
-               ${AVR_CPPFLAGS} \
-               $<  -c -o $@
-else
-       @$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS) $(CORE_CFLAGS) -MMD \
-               ${AVR_CPPFLAGS} \
-               $<  -c -o $@
+ifneq ($(E),)
        @echo CORE $<
 endif
+       ${E}$(CC) $(CPPFLAGS) $(CFLAGS) $(CORE_CFLAGS) -MMD \
+               ${AVR_CPPFLAGS} \
+               $<  -c -o $@
 
 ${OBJ}/%.o: %.c
-ifeq ($(V),1)
-       $(CC) $(CPPFLAGS) $(CFLAGS) -MMD \
-               $<  -c -o $@
-else
-       @$(CC) $(CPPFLAGS) $(CFLAGS) -MMD \
-               $<  -c -o $@
+ifneq ($(E),)
        @echo CC $<
 endif
+       ${E}$(CC) $(CPPFLAGS) $(CFLAGS) -MMD \
+               $<  -c -o $@
 
 ${OBJ}/%.elf:
-ifeq ($(V),1)
-       $(CC) -MMD ${CFLAGS}  ${LFLAGS} -o $@ $^ $(LDFLAGS)
-else
+ifneq ($(E),)
        @echo LD $@
-       @$(CC) -MMD ${CFLAGS}  ${LFLAGS} -o $@ $^ $(LDFLAGS)
 endif
+       ${E}$(CC) -MMD ${CFLAGS}  ${LFLAGS} -o $@ $^ $(LDFLAGS)
 
 obj: ${OBJ}
 
index 35ee448d87b5e3264775b318ab71a70ad9598905..2a41697811127ae15fb297a94a8643757607f984 100644 (file)
@@ -50,23 +50,20 @@ IPATH       += ../../shared
 # Static library
 #
 ${OBJ}/libsimavr.a     :       ${sim_o}
-ifeq ($(V),1)
-       $(AR) cru $@ $^ && $(RANLIB) $@
-else
+ifneq ($(E),)
        @echo AR $@
-       @$(AR) cru $@ $^ && $(RANLIB) $@
 endif
+       ${E}$(AR) cru $@ $^ && $(RANLIB) $@
 
 #
 # Shared library (Linux)
 #
 ${OBJ}/libsimavr.so.1  :       ${sim_o}
-ifeq ($(V),1)
-       $(CC) -shared -Wl,-soname,libsimavr.so.1 -o $@ $^ ${filter-out -lsimavr, $(LDFLAGS)}
-else
+ifneq ($(E),)
        @echo SHARED $@
-       @$(CC) -shared -Wl,-soname,libsimavr.so.1 -o $@ $^ ${filter-out -lsimavr, $(LDFLAGS)}
 endif
+       ${E}$(CC) -shared -Wl,-soname,libsimavr.so.1 -o $@ $^ \
+               ${filter-out -lsimavr, $(LDFLAGS)}
 
 ${OBJ}/libsimavr.so            : ${OBJ}/libsimavr.so.1
        ln -sf libsimavr.so.1 $@
@@ -74,7 +71,7 @@ ${OBJ}/libsimavr.so           : ${OBJ}/libsimavr.so.1
 libsimavr      : config ${OBJ}/libsimavr.a
 # shared library won't work that easily on non-linux
 ifeq (${shell uname}, Linux)
-libsimavr      :       ${OBJ}/libsimavr.so
+libsimavr      : ${OBJ}/libsimavr.so
 endif
 
 ${OBJ}/${target}.elf   : ${OBJ}/${target}.o
@@ -166,6 +163,7 @@ sim_core_config.h ${OBJ}/cores.deps: $(cores) Makefile
                        printf "\$${OBJ}/libsimavr.a: \$${OBJ}/$$obj\n">>${OBJ}/cores.deps ; \
                        printf "\$${OBJ}/libsimavr.so.1: \$${OBJ}/$$obj\n">>${OBJ}/cores.deps ; \
                else \
+                       conf+="#undef CONFIG_$$upper\n"; \
                        echo WARNING $$file did not compile, check your avr-gcc toolchain; \
                fi \
        done ; \