Newer
Older
ifeq ($(BUILD), lm32)
TARGET = lm32-elf-
endif
ifeq ($(BUILD), win32)
TARGET = i586-mingw32msvc-
LIBS = -lwsock32 -lws2_32
endif
ifeq ($(BUILD), lm32)
GOALS =
CPLUSPLUS =
TRANSPORT = transport/lm32.c
else
GOALS = demo/eb-read demo/eb-write demo/eb-load demo/eb-snoop test/sizes test/loopback
CPLUSPLUS = glue/cplusplus.cpp
TRANSPORT = transport/posix-ip.c \
transport/posix-udp.c \
transport/posix-tcp.c \
transport/ssh.c \
transport/transports.c \
transport/block.c
endif
ifeq ($(BUILD), win32)
LIBRARY = etherbone.dll
else
LIBRARY = etherbone.a
endif
FLAGS = -Wall -Wmissing-declarations -O2
#FLAGS := $(FLAGS) -DEB_USE_DYNAMIC # deterministic untill table overflow (default)
#FLAGS := $(FLAGS) -DEB_USE_STATIC=200 # fully deterministic
#FLAGS := $(FLAGS) -DEB_USE_MALLOC # non-deterministic
#FLAGS := $(FLAGS) -DDISABLE_SLAVE
#FLAGS := $(FLAGS) -DDISABLE_MASTER
CFLAGS = $(FLAGS) -Wmissing-prototypes
CXXFLAGS= $(FLAGS)
OBJECTS = $(patsubst %.cpp,%.o,$(patsubst %.c,%.o,$(SOURCES)))
SOURCES = memory/static.c \
memory/dynamic.c \
memory/array.c \
memory/malloc.c \
format/slave.c \
format/master.c \
glue/operation.c \
glue/cycle.c \
glue/device.c \
glue/socket.c \
etherbone.dll: $(OBJECTS)
$(TARGET)g++ $(CXXFLAGS) -shared -Wl,--out-implib=libetherbone.dll.a -Wl,--output-def,etherbone.def -o $@ $^ $(LIBS)
test/%: test/%.c $(LIBRARY)
$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
clean:
%.o: %.c
$(CC) $(CFLAGS) -o $@ -c $^
%.o: %.cpp
$(CXX) $(CXXFLAGS) -o $@ -c $^