CXXCPP = @CXXCPP@
RANLIB = @RANLIB@
INSTALL = @INSTALL@
+STRIP = @STRIP@
PRJDIR = ..
DEFS = $(subs -DHAVE_CONFIG_H,,@DEFS@)
CPPFLAGS = @CPPFLAGS@ -I. -I$(PRJDIR) \
- -I$(PRJDIR)/cmd.src -I$(PRJDIR)/sim.src
+ -I$(PRJDIR)/cmd.src -I$(PRJDIR)/sim.src -I$(PRJDIR)/gui.src
CFLAGS = @CFLAGS@ -Wall
CXXFLAGS = @CXXFLAGS@ -Wall
M_OR_MM = @M_OR_MM@
+PICOPT = @PICOPT@
+SHAREDLIB = @SHAREDLIB@
SDCC = sdcc
SDCFLAGS = --debug --stack-after-data --model-small
SDCPPFLAGS =
-LIBS = @LIBS@ -L$(PRJDIR) -lutil -lsim -lcmd
+LIBS = @LIBS@ -L$(PRJDIR) -Wl,--start-group -lutil -lsim -lcmd -lguiucsim -Wl,--end-group
+DL = @DL@
+dl_ok = @dl_ok@
prefix = @prefix@
exec_prefix = @exec_prefix@
infodir = @infodir@
srcdir = @srcdir@
-OBJECTS = s51.o glob.o sim51.o cmd51.o \
+EXEEXT = @EXEEXT@
+
+OBJECTS_SHARED = glob.o sim51.o \
inc.o jmp.o mov.o logic.o arith.o bit.o \
timer0.o timer1.o timer2.o serial.o port.o interrupt.o \
+ wdt.o pca.o \
uc51.o uc52.o uc51r.o uc89c51r.o uc251.o \
- cmd.o dump.o go.o cmd_brk.o set.o where.o show.o
+ uc390.o uc390hw.o
+OBJECTS_EXE = s51.o
+OBJECTS = $(OBJECTS_SHARED) $(OBJECTS_EXE)
+
+enable_dlso = @enable_dlso@
+dlso_ok = @dlso_ok@
# Compiling entire program or any subproject
# ------------------------------------------
all: checkconf otherlibs s51.src
-tests: test_ser.ihx
-
-test_ser.ihx: test_ser.rel
- $(SDCC) $(SDCFLAGS) $<
-
# Compiling and installing everything and runing test
# ---------------------------------------------------
install: all installdirs
- if test -f s51.exe; then $(INSTALL) -s s51.exe $(bindir);fi
- if test -f s51; then $(INSTALL) -s s51 $(bindir);fi
+ $(INSTALL) -s s51$(EXEEXT) $(bindir)
# Deleting all the installed files
# --------------------------------
uninstall:
- rm -f $(bindir)/s51
+ rm -f $(bindir)/s51$(EXEEXT)
# Performing self-test
# --------------------
-check:
+check: test
+test: test_ser.ihx
+
+test_ser.ihx: test_ser.rel
+ $(SDCC) $(SDCFLAGS) $<
# Performing installation test
# ----------------------------
# --------
.SUFFIXES: .rel
-s51.src: s51
+s51.src: s51$(EXEEXT) shared_lib
+
+s51$(EXEEXT): $(OBJECTS) $(PRJDIR)/*.a
+ $(CXX) $(CXXFLAGS) $(OBJECTS) $(LIBS) -o $@
+
+ifeq ($(dlso_ok),yes)
+shared_lib: $(PRJDIR)/s51.so
+else
+shared_lib:
+ @$(PRJDIR)/mkecho $(PRJDIR) "No 51 shared lib made."
+ @$(PRJDIR)/mkecho $(PRJDIR) "(SHAREDLIB="$(SHAREDLIB)",dl_ok="$(dl_ok)",enable_dlso="$(enable_dlso)")"
+endif
-s51: $(OBJECTS) $(PRJDIR)/*.a
- $(CXX) $(CXXFLAGS) -o s51 $(OBJECTS) $(LIBS)
+$(PRJDIR)/s51.so: $(OBJECTS_SHARED)
+ $(CXX) -shared $(OBJECTS_SHARED) -o $@
otherlibs:
+ cd $(PRJDIR) && $(MAKE) libs
cd $(PRJDIR)/cmd.src && $(MAKE) all
cd $(PRJDIR)/sim.src && $(MAKE) all
+ $(MAKE) -C $(PRJDIR)/gui.src checkconf ucsim_lib
.cc.o:
- $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
+ $(CXX) $(CXXFLAGS) $(PICOPT) $(CPPFLAGS) -c $< -o $@
.c.rel:
$(SDCC) $(SDCFLAGS) $(SDCPPFLAGS) -c $<