INSTALL = @INSTALL@
STRIP = @STRIP@
-PRJDIR = ..
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
DEFS = $(subs -DHAVE_CONFIG_H,,@DEFS@)
-CPPFLAGS = @CPPFLAGS@ -I. -I$(PRJDIR) \
- -I$(PRJDIR)/cmd.src -I$(PRJDIR)/sim.src -I$(PRJDIR)/gui.src
+CPPFLAGS = @CPPFLAGS@ -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) \
+ -I$(top_srcdir)/cmd.src -I$(top_srcdir)/sim.src \
+ -I$(top_srcdir)/gui.src
CFLAGS = @CFLAGS@ -Wall
CXXFLAGS = @CXXFLAGS@ -Wall
+LDFLAGS = @LDFLAGS@
M_OR_MM = @M_OR_MM@
PICOPT = @PICOPT@
SHAREDLIB = @SHAREDLIB@
SDCFLAGS = --debug --stack-after-data --model-small
SDCPPFLAGS =
-LIBS = @LIBS@ -L$(PRJDIR) -lsim -lcmd -lguiucsim -lutil
+LIBS = -L$(top_builddir) -lsim -lucsimutil -lguiucsim -lcmd -lsim @LIBS@
DL = @DL@
-
dl_ok = @dl_ok@
prefix = @prefix@
bindir = @bindir@
libdir = @libdir@
datadir = @datadir@
+datarootdir = @datarootdir@
includedir = @includedir@
mandir = @mandir@
man1dir = $(mandir)/man1
man2dir = $(mandir)/man2
infodir = @infodir@
srcdir = @srcdir@
+VPATH = @srcdir@
+
+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 \
- uc51.o uc52.o uc51r.o uc89c51r.o uc251.o uc390.o
+ wdt.o pca.o \
+ uc51.o uc52.o uc51r.o uc89c51r.o uc251.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) s51.exe $(bindir); $(STRIP) $(bindir)/s51.exe; fi
- if test -f s51; then $(INSTALL) s51 $(bindir); $(STRIP) $(bindir)/s51; fi
+ $(INSTALL) s51$(EXEEXT) $(DESTDIR)$(bindir)/s51$(EXEEXT)
+ $(STRIP) $(DESTDIR)$(bindir)/s51$(EXEEXT)
# Deleting all the installed files
# --------------------------------
uninstall:
- rm -f $(bindir)/s51
+ rm -f $(DESTDIR)$(bindir)/s51$(EXEEXT)
# Performing self-test
# --------------------
-check:
+check: test
+
+test: test_ser.ihx
+test_ser.ihx: test_ser.rel
+ $(SDCC) $(SDCFLAGS) $<
# Performing installation test
# ----------------------------
# Creating installation directories
# ---------------------------------
installdirs:
- test -d $(bindir) || $(INSTALL) -d $(bindir)
+ test -d $(DESTDIR)$(bindir) || $(INSTALL) -d $(DESTDIR)$(bindir)
# Creating dependencies
# ---------------------
dep: Makefile.dep
-Makefile.dep: *.cc *.h
- $(CXXCPP) $(CPPFLAGS) $(M_OR_MM) *.cc >Makefile.dep
+Makefile.dep: $(srcdir)/*.cc $(srcdir)/*.h
+ $(CXXCPP) $(CPPFLAGS) $(M_OR_MM) $(filter %.cc,$^) >Makefile.dep
-include Makefile.dep
-include clean.mk
+-include Makefile.dep
+include $(srcdir)/clean.mk
#parser.cc: parser.y
# --------
.SUFFIXES: .rel
-s51.src: s51 shared_lib
+s51.src: s51$(EXEEXT) shared_lib
-s51: $(OBJECTS) $(PRJDIR)/*.a
- $(CXX) $(CXXFLAGS) -o s51 $(OBJECTS) $(LIBS)
+s51$(EXEEXT): $(OBJECTS) $(top_builddir)/*.a
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJECTS) $(LIBS) -o $@
-ifeq ($(SHAREDLIB),yes)
-shared_lib: $(PRJDIR)/s51.so
+ifeq ($(dlso_ok),yes)
+shared_lib: $(top_builddir)/s51.so
else
shared_lib:
- @echo "No shared lib made."
+ @$(top_srcdir)/mkecho $(top_builddir) "No 51 shared lib made."
+ @$(top_srcdir)/mkecho $(top_builddir) "(SHAREDLIB="$(SHAREDLIB)",dl_ok="$(dl_ok)",enable_dlso="$(enable_dlso)")"
endif
-$(PRJDIR)/s51.so: $(OBJECTS_SHARED)
- $(CXX) -shared $(OBJECTS_SHARED) -o $(PRJDIR)/s51.so
+$(top_builddir)/s51.so: $(OBJECTS_SHARED)
+ $(CXX) -shared $(LDFLAGS) $(OBJECTS_SHARED) -o $@
otherlibs:
- cd $(PRJDIR)/cmd.src && $(MAKE) all
- cd $(PRJDIR)/sim.src && $(MAKE) all
- $(MAKE) -C $(PRJDIR)/gui.src checkconf ucsim_lib
+ $(MAKE) -C $(top_builddir) libs
+ $(MAKE) -C $(top_builddir)/cmd.src all
+ $(MAKE) -C $(top_builddir)/sim.src all
+ $(MAKE) -C $(top_builddir)/gui.src checkconf ucsim_lib
.cc.o:
$(CXX) $(CXXFLAGS) $(PICOPT) $(CPPFLAGS) -c $< -o $@
# Remaking configuration
# ----------------------
checkconf:
- @if [ -f $(PRJDIR)/devel ]; then\
- $(MAKE) -f conf.mk srcdir="$(srcdir)" PRJDIR="$(PRJDIR)" freshconf;\
+ @if [ -f $(top_builddir)/devel ]; then\
+ $(MAKE) -f conf.mk srcdir="$(srcdir)" top_builddir="$(top_builddir)" freshconf;\
fi
# End of s51.src/Makefile.in