URL
https://opencores.org/ocsvn/minsoc/minsoc/trunk
Subversion Repositories minsoc
[/] [minsoc/] [trunk/] [sw/] [eth/] [Makefile] - Rev 158
Compare with Previous | Blame | View Log
include ../support/Makefile.incinclude $(BACKEND_DIR)/gcc-opt.mk#USER INPUTSRCS = eth.cOR32_TARGET = eth.hexTARGET =TARGETLIB =MODEL = static #dynamic|staticVERSION = 0.1MODE = debug #release|debugINCLUDEDIRS = $(SUPPORT_DIR) $(DRIVERS_DIR)#libsystemc or systemc (system ignores lib at the beginning)LIBNAMES =LIBDIRS =DEPENDDIR = ./depend#CONFIGURATIONDEBUGPARAM =RELEASEPARAM =DEBUGFLAGS = -g -O0RELEASEFLAGS = -O2 -fomit-frame-pointerCFLAGS = -WallCC = or32-elf-gccAR = or32-elf-arRANLIB = or32-elf-ranlibCFLAGS += $(GCC_OPT)#MECHANICSINCLUDESPATH = $(addprefix -I, $(INCLUDEDIRS))LIBSPATH = $(addprefix -L, $(LIBDIRS))LIBSLINKAGE = $(addprefix -l, $(subst lib, , $(LIBNAMES)) )COMMA = ,RPATH = $(addprefix -Wl$(COMMA)-R, $(LIBDIRS))OBJS = $(addsuffix .o, $(basename $(SRCS)))DEPS = $(addprefix $(DEPENDDIR)/, $(addsuffix .d, $(basename $(SRCS) ) ) )STATICLIB = $(addprefix lib, $(addsuffix .a, $(TARGETLIB) ) )DYNAMICLIB = $(addprefix lib, $(addsuffix .so, $(TARGETLIB) ) )SONAME = $(addsuffix .$(VERSION), $(DYNAMICLIB))ifeq (debug,$(findstring debug, $(MODE)))CFLAGS += $(DEBUGFLAGS) $(addprefix -D, $(DEBUGPARAM))elseCFLAGS += $(RELEASEFLAGS) $(addprefix -D, $(RELEASEPARAM))endififdef TARGETLIBifeq (dynamic,$(findstring dynamic, $(MODEL)))TARGET = $(DYNAMICLIB)CFLAGS += -fPICelseTARGET = $(STATICLIB)endifendif#MAKEFILE RULESall: $(TARGET) $(OR32_TARGET)depend: $(DEPS)docs: Doxyfiledoxygendistclean:make cleanrm -rf $(DEPENDDIR) Doxygen-include $(DEPS)ifndef TARGETLIB$(TARGET): $(OBJS)$(CC) $(LIBSPATH) $(RPATH) -o $@ $^ $(LIBSLINKAGE)endif$(STATICLIB): $(OBJS)$(AR) cru $@ $^$(RANLIB) $@$(DYNAMICLIB): $(OBJS)$(CC) -shared -Wl,-soname,$(SONAME) -o $@ $^ln -fs $@ $(SONAME)%.o: %.c$(CC) $(CFLAGS) $(INCLUDESPATH) -c $< -o $@$(DEPENDDIR)/%.d: %.cmkdir -p $(DEPENDDIR)$(CC) $(INCLUDESPATH) -MM -MF $@ $<# DO NOT DELETESTEM = $(subst .hex, , $(OR32_TARGET))BINARY = $(addsuffix .bin, $(STEM) )EXECUTABLE = $(addsuffix .or32, $(STEM) )$(OR32_TARGET): $(BINARY)$(BIN2HEX) $? 1 -size_word > $@$(BINARY): $(EXECUTABLE)$(OR32_TOOL_PREFIX)-objcopy -O binary $? $@#except.o and reset.o should be already inside of $(SUPPORT) (libsupport.a) but for some reason the compiler ignores that fact#(e.g. or32-elf-objdump -t libsupport.a shows it)$(EXECUTABLE): $(OBJS) ../support/except.o ../support/reset.o $(SUPPORT) $(DRIVERS)$(CC) $(CFLAGS) $(GCC_LIB_OPTS) -T $(LINKER_SCRIPT) $^ -o $@clean:rm -f *.o *~ $(TARGET) $(STATICLIB) $(DYNAMICLIB) $(SONAME) $(OR32_TARGET) $(BINARY) $(EXECUTABLE)#EOF
