CFLAGS = @CFLAGS@ -Wall
CXXFLAGS = @CXXFLAGS@ -Wall
M_OR_MM = @M_OR_MM@
+PICOPT = @PICOPT@
+SHAREDLIB = @SHAREDLIB@
+EXEEXT = @EXEEXT@
-LIBS = @LIBS@ -L$(PRJDIR) -lsim -lcmd -lutil -lguiucsim
+LIBS = @LIBS@ -L$(PRJDIR) -Wl,--start-group -lsim -lutil -lcmd -lguiucsim -Wl,--end-group
+DL = @DL@
+dl_ok = @dl_ok@
prefix = @prefix@
exec_prefix = @exec_prefix@
infodir = @infodir@
srcdir = @srcdir@
-OBJECTS = savr.o glob.o \
+OBJECTS_SHARED = glob.o \
simavr.o avr.o port.o \
inst.o bit_inst.o jump_inst.o move_inst.o logic_inst.o \
arith_inst.o
+OBJECTS_EXE = savr.o
+OBJECTS = $(OBJECTS_SHARED) $(OBJECTS_EXE)
+
+enable_dlso = @enable_dlso@
+dlso_ok = @dlso_ok@
AVRASM = tavrasm
TEST_OBJ = test_bit.hex test_dis.hex test_mov.hex test_jmp.hex \
# ------------------------------------------
all: checkconf otherlibs avr.src
-tests: $(TEST_OBJ)
-
# Compiling and installing everything and runing test
# ---------------------------------------------------
install: all installdirs
- $(INSTALL) -s savr $(bindir)
+ $(INSTALL) -s savr$(EXEEXT) $(bindir)
# Deleting all the installed files
# Performing self-test
# --------------------
-check:
+check: $(TEST_OBJ)
+
+test:
# Performing installation test
# --------
.SUFFIXES: .asm .hex
-avr.src: savr
+avr.src: savr$(EXEEXT) shared_lib
+
+savr$(EXEEXT): $(OBJECTS) $(PRJDIR)/*.a
+ $(CXX) $(CXXFLAGS) $(OBJECTS) $(LIBS) -o $@
+
+ifeq ($(dlso_ok),yes)
+shared_lib: $(PRJDIR)/savr.so
+else
+shared_lib:
+ @$(PRJDIR)/mkecho $(PRJDIR) "No AVR shared lib made."
+ @$(PRJDIR)/mkecho $(PRJDIR) "(SHAREDLIB="$(SHAREDLIB)",dl_ok="$(dl_ok)",enable_dlso="$(enable_dlso)")"
+endif
-savr: $(OBJECTS) $(PRJDIR)/*.a
- $(CXX) $(CXXFLAGS) -o savr $(OBJECTS) $(LIBS)
+$(PRJDIR)/savr.so: $(OBJECTS_SHARED)
+ $(CXX) -shared $(OBJECTS_SHARED) -o $(PRJDIR)/savr.so
otherlibs:
cd $(PRJDIR)/cmd.src && $(MAKE) all