#
#
-CFLAGS+=-g
-
SHELL = /bin/sh
-AUTOCONF = autoconf
PRJDIR = .
-srcdir = .
-include $(srcdir)/Makefile.common
SDCC_MISC = debugger/mcs51 sim/ucsim
SDCC_LIBS = support/cpp support/cpp2
SDCC_DOC = doc
+# Parts that are not normally compiled but need to be cleaned
+SDCC_EXTRA = support/regression support/makebin
+
SDCC_ASLINK = as/mcs51 as link
SDCC_PACKIHX = packihx
$(MAKE) -f clean.mk clean
@echo "+ Cleaning packages in their directories..."
for pkg in $(PKGS); do\
- $(MAKE) PORTS="$(PORTS)" -C $$pkg clean ;\
+ $(MAKE) PORTS="$(PORTS)" -C $$pkg -f clean.mk clean ;\
done
-
# Deleting all files created by configuring or building the program
# -----------------------------------------------------------------
distclean:
$(MAKE) -f clean.mk distclean
@echo "+ DistCleaning packages using clean.mk..."
for pkg in $(PKGS); do\
- $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" distclean ;\
+ $(MAKE) -C $$pkg PORTS="$(PORTS)" -f clean.mk distclean ;\
+ done
+ for pkg in $(SDCC_EXTRA); do \
+ $(MAKE) -C $$pkg clean; \
done
-
# Like clean but some files may still exist
# -----------------------------------------
all:
$(MAKE) -C z80 _as-z80 _as-gbz80 E=$(E) BUILDDIR=../../bin/
-clean:
- $(MAKE) -C z80 clean
-
install: install-doc
$(INSTALL) $(PRJDIR)/bin/as-z80 `echo $(bindir)/as-z80|sed '$(transform)'`
$(STRIP) -s `echo $(bindir)/as-z80|sed '$(transform)'`
install-doc:
$(INSTALL) -d $(docdir)/aslink
cp -f `find doc -maxdepth 1 -not -type d` $(docdir)/aslink
+
+include clean.mk
--- /dev/null
+clean:
+ $(MAKE) -C z80 -f clean.mk clean
+
+distclean:
+ $(MAKE) -C z80 -f clean.mk distclean
+
$(OBJDIR)/%.o: $(SLIB)/%.c
$(CC) -c $(CFLAGS) -o $@ $<
-clean:
- rm -rf $(OBJS) $(BINS) $(OBJDIR)
-
_as-z80:
$(MAKE) EXT=-z80$(E)
_as-gbz80:
$(MAKE) EXT=-gbz80$(E) OPTS=-DGAMEBOY
+
+include clean.mk
# Deleting all files created by building the program
# --------------------------------------------------
clean:
+ rm -rf obj
rm -f *core *[%~] *.[oa]
rm -f .[a-z]*~
rm -f $(PRJDIR)/as-z80 as-z80
-
# Deleting all files created by configuring or building the program
# -----------------------------------------------------------------
distclean: clean
- rm -f Makefile *.dep
+ rm -f *.dep
# Like clean but some files may still exist
rm -f .[a-z]*~
-rm -f bin/*
-
# Deleting all files created by configuring or building the program
# -----------------------------------------------------------------
distclean: clean
rm -f config.cache config.log config.status Makefile.common
rm -f sdccconf.h main.mk *.dep
- rm ports.all ports.build
+ rm -f ports.all ports.build
# Like clean but some files may still exist
# -----------------------------------------
clean:
rm -f *core *[%~] *.[oa]
rm -f .[a-z]*~
- rm -f $(PRJDIR)/bin/sdcdb
+ rm -f $(PRJDIR)/bin/sdcdb \
$(PRJDIR)/support/Util/SDCCerr.o
# Deleting all files created by configuring or building the program
_dummy:
clean:
- rm -f $(OBJ) *~ $(CLEANSPEC) *.dump*
+ rm -f $(OBJ) *~ $(CLEANSPEC) *.dump* *.asm *.lib
_dummy:
clean:
- rm -f $(OBJ) *~ $(CLEANSPEC) *.dump*
+ rm -f $(OBJ) *~ $(CLEANSPEC) *.dump* *.asm *.lib
# the glossary, not implemented yet
# makeindex -s l2hglo.ist -o $@ $<
-
-clean:
- # remove intermediate file, not the final pdf's and html's
- # because these are needed for the distribution
- rm -rf *.tex *.aux *.dvi *.idx *.ilg *.ind *.log *.toc *~ \#* \
- *.ps */*.css */*.pl *.gif core
-
-superclean:
- $(MAKE) clean
- # now get rid of the generated pdf's and html's as well
- rm -rf *.pdf $(MANUAL).html $(TSS).html
\ No newline at end of file
+include clean.mk
--- /dev/null
+# remove intermediate file, not the final pdf's and html's
+# because these are needed for the distribution
+clean:
+ rm -rf *.tex *.aux *.dvi *.idx *.ilg *.ind *.log *.toc *~ \#* \
+ *.ps */*.css */*.pl *.gif core
+
+# now get rid of the generated pdf's and html's as well
+superclean: clean
+ rm -rf *.pdf $(MANUAL).html $(TSS).html
+
+distclean: superclean
all:
$(MAKE) -C z80 _link-z80 _link-gbz80 E=$(E) BUILDDIR=../../bin/
-clean:
- $(MAKE) -C z80 clean
-
install:
$(INSTALL) $(PRJDIR)/bin/link-z80 `echo $(bindir)/link-z80|sed '$(transform)'`
$(STRIP) `echo $(bindir)/link-z80|sed '$(transform)'`
$(INSTALL) $(PRJDIR)/bin/link-gbz80 `echo $(bindir)/link-gbz80|sed '$(transform)'`
$(STRIP) `echo $(bindir)/link-gbz80|sed '$(transform)'`
-
+include clean.mk
--- /dev/null
+clean:
+ $(MAKE) -C z80 -f clean.mk clean
+
+distclean: clean
$(OBJDIR)/%.o: $(SLIB)/%.c
$(CC) -c $(CFLAGS) -o $@ $<
-clean:
- rm -rf $(OBJS) $(BINS) $(OBJDIR)
-
_link-z80:
$(MAKE) EXT=-z80$(E) PORT=z80
_link-gbz80:
$(MAKE) EXT=-gbz80$(E) OPTS=-DGAMEBOY PORT=z80
+
+include clean.mk
rm -f *core *[%~] *.[oa]
rm -f .[a-z]*~
rm -f $(PRJDIR)/link-z80 link-z80
-
+ rm -f *.dep
+ rm -rf obj
# Deleting all files created by configuring or building the program
# -----------------------------------------------------------------
distclean: clean
- rm -f Makefile *.dep
# Like clean but some files may still exist
# -----------------------------------------
mostlyclean: clean
-
# Deleting everything that can reconstructed by this Makefile. It deletes
# everything deleted by distclean plus files created by bison, etc.
# -----------------------------------------------------------------------
rm -f packihx
distclean realclean: clean
- rm -f config.*
+ rm -f config.* Makefile
# Deleting all files created by building the program
# --------------------------------------------------
clean:
- $(MAKE) -f clean.mk clean
+ rm -f *core *[%~] *.[oa] *.so ucsim
+ rm -f .[a-z]*~
@for pkg in $(PKGS); do\
$(MAKE) -C $$pkg -f clean.mk clean ;\
done
# Deleting all files created by configuring or building the program
# -----------------------------------------------------------------
distclean: clean
- $(MAKE) -f clean.mk distclean
+ rm -f config.cache config.log config.status
+ rm -f ddconfig.h main.mk *.dep
@for pkg in $(PKGS); do\
$(MAKE) -C $$pkg -f clean.mk distclean ;\
done
# Like clean but some files may still exist
# -----------------------------------------
mostlyclean: clean
- $(MAKE) -f clean.mk mostlyclean
@for pkg in $(PKGS); do\
$(MAKE) -C $$pkg -f clean.mk mostlyclean ;\
done
# everything deleted by distclean plus files created by bison, stc.
# -----------------------------------------------------------------------
realclean: distclean
- $(MAKE) -f clean.mk realclean
@for pkg in $(PKGS); do\
$(MAKE) -C $$pkg -f clean.mk realclean ;\
done
+# PENDING: Delegate up to the Makefile
+
# Deleting all files created by building the program
# --------------------------------------------------
clean:
- rm -f *core *[%~] *.[oa] *.so ucsim
- rm -f .[a-z]*~
-
+ make clean
# Deleting all files created by configuring or building the program
# -----------------------------------------------------------------
-distclean: clean
- rm -f config.cache config.log config.status
- rm -f ddconfig.h main.mk *.dep
-
+distclean:
+ make distclean
# Like clean but some files may still exist
# -----------------------------------------
-mostlyclean: clean
-
+mostlyclean:
+ make mostlyclean
# Deleting everything that can reconstructed by this Makefile. It deletes
# everything deleted by distclean plus files created by bison, etc.
# -----------------------------------------------------------------------
-realclean: distclean
+realclean:
+ make realclean
\ No newline at end of file
);
}
-/*
- "\t-m<proc> - Target processor <proc>. Default %s\n"
- "\t Try --version for supported values of <proc>\n"
- "\t--model-large - Large Model\n"
- "\t--model-small - Small Model (default)\n"
- "\t--stack-auto - Stack automatic variables\n"
- "\t--xstack - Use external stack\n"
- "\t--xram-loc <nnnn> - External Ram start location\n"
- "\t--xstack-loc <nnnn> - Xternal Stack Location\n"
- "\t--code-loc <nnnn> - Code Segment Location\n"
- "\t--stack-loc <nnnn> - Stack pointer initial value\n"
- "\t--data-loc <nnnn> - Direct data start location\n"
- "\t--idata-loc <nnnn> - Indirect data start location\n"
- "\t--iram-size <nnnn> - Internal Ram size\n"
- "\t--nojtbound - Don't generate boundary check for jump tables\n"
- "\t--generic - All unqualified ptrs converted to '_generic'\n"
- "PreProcessor Options :-\n"
- "\t-Dmacro - Define Macro\n"
- "\t-Ipath - Include \"*.h\" path\n"
- "Note: this is NOT a complete list of options see docs for details\n",
-*/
/*-----------------------------------------------------------------*/
/* printUsage - prints command line syntax */
/*-----------------------------------------------------------------*/
then for input of '--optxyz' or '--opt xyz' returns xyz.
*/
static char *
-getStringArg(const char *szStart, char **argv, int *pi)
+getStringArg(const char *szStart, char **argv, int *pi, int argc)
{
- if (argv[*pi][strlen(szStart)]) {
- return &argv[*pi][strlen(szStart)];
+ if (argv[*pi][strlen(szStart)])
+ {
+ return &argv[*pi][strlen(szStart)];
}
- else {
- return argv[++(*pi)];
+ else
+ {
+ ++(*pi);
+ if (*pi >= argc)
+ {
+ werror (E_ARGUMENT_MISSING, szStart);
+ /* Die here rather than checking for errors later. */
+ exit(-1);
+ }
+ else
+ {
+ return argv[++(*pi)];
+ }
}
}
getStringArg.
*/
static int
-getIntArg(const char *szStart, char **argv, int *pi)
+getIntArg(const char *szStart, char **argv, int *pi, int argc)
{
- return (int)floatFromVal(constVal(getStringArg(szStart, argv, pi)));
+ return (int)floatFromVal(constVal(getStringArg(szStart, argv, pi, argc)));
}
static bool
if (strcmp (argv[i], OPTION_PEEP_FILE) == 0)
{
- options.peep_file = getStringArg(OPTION_PEEP_FILE, argv, &i);
+ options.peep_file = getStringArg(OPTION_PEEP_FILE, argv, &i, argc);
continue;
}
if (strcmp (argv[i], OPTION_LIB_PATH) == 0)
{
- libPaths[nlibPaths++] = getStringArg(OPTION_LIB_PATH, argv, &i);
+ libPaths[nlibPaths++] = getStringArg(OPTION_LIB_PATH, argv, &i, argc);
continue;
}
if (strcmp (argv[i], OPTION_CALLEE_SAVES) == 0)
{
- parseWithComma (options.calleeSaves, getStringArg(OPTION_CALLEE_SAVES, argv, &i));
+ parseWithComma (options.calleeSaves, getStringArg(OPTION_CALLEE_SAVES, argv, &i, argc));
continue;
}
if (strcmp (argv[i], OPTION_XSTACK_LOC) == 0)
{
- options.xstack_loc = getIntArg(OPTION_XSTACK_LOC, argv, &i);
+ options.xstack_loc = getIntArg(OPTION_XSTACK_LOC, argv, &i, argc);
continue;
}
if (strcmp (argv[i], OPTION_STACK_LOC) == 0)
{
- options.stack_loc = getIntArg(OPTION_STACK_LOC, argv, &i);
+ options.stack_loc = getIntArg(OPTION_STACK_LOC, argv, &i, argc);
continue;
}
if (strcmp (argv[i], OPTION_XRAM_LOC) == 0)
{
- options.xdata_loc = getIntArg(OPTION_XRAM_LOC, argv, &i);
+ options.xdata_loc = getIntArg(OPTION_XRAM_LOC, argv, &i, argc);
continue;
}
if (strcmp (argv[i], OPTION_IRAM_SIZE) == 0)
{
- options.iram_size = getIntArg(OPTION_IRAM_SIZE, argv, &i);
+ options.iram_size = getIntArg(OPTION_IRAM_SIZE, argv, &i, argc);
continue;
}
if (strcmp (argv[i], OPTION_DATA_LOC) == 0)
{
- options.data_loc = getIntArg(OPTION_DATA_LOC, argv, &i);
+ options.data_loc = getIntArg(OPTION_DATA_LOC, argv, &i, argc);
continue;
}
if (strcmp (argv[i], OPTION_IDATA_LOC) == 0)
{
- options.idata_loc = getIntArg(OPTION_IDATA_LOC, argv, &i);
+ options.idata_loc = getIntArg(OPTION_IDATA_LOC, argv, &i, argc);
continue;
}
if (strcmp (argv[i], OPTION_CODE_LOC) == 0)
{
- options.code_loc = getIntArg(OPTION_CODE_LOC, argv, &i);
+ options.code_loc = getIntArg(OPTION_CODE_LOC, argv, &i, argc);
continue;
}
}
if (strcmp (argv[i], OPTION_LESS_PEDANTIC) == 0)
- {
- setErrorLogLevel(ERROR_LEVEL_WARNING);
- continue;
- }
-
- if (strcmp (&argv[i][1], OPTION_SHORT_IS_8BITS) == 0) {
- options.shortis8bits=1;
- continue;
- }
+ {
+ setErrorLogLevel(ERROR_LEVEL_WARNING);
+ continue;
+ }
+
+ if (strcmp (&argv[i][1], OPTION_SHORT_IS_8BITS) == 0)
+ {
+ options.shortis8bits=1;
+ continue;
+ }
if (!port->parseOption (&argc, argv, &i))
{
break;
case 'L':
- libPaths[nlibPaths++] = getStringArg("-L", argv, &i);
+ libPaths[nlibPaths++] = getStringArg("-L", argv, &i, argc);
break;
case 'l':
- libFiles[nlibFiles++] = getStringArg("-l", argv, &i);
+ libFiles[nlibFiles++] = getStringArg("-l", argv, &i, argc);
break;
case 'W':
/* linker options */
if (argv[i][2] == 'l')
{
- parseWithComma(linkOptions, getStringArg("-Wl", argv, &i));
+ parseWithComma(linkOptions, getStringArg("-Wl", argv, &i, argc));
}
else
{
/* assembler options */
if (argv[i][2] == 'a')
{
- parseWithComma ((char **) asmOptions, getStringArg("-Wa", argv, &i));
+ parseWithComma ((char **) asmOptions, getStringArg("-Wa", argv, &i, argc));
}
else
{
+CLEANALLPORTS = avr ds390 izt mcs51 pic z80
+PRJDIR = ..
+
# Deleting all files created by building the program
# --------------------------------------------------
clean:
rm -f *core *[%~] *.[oa] *.output
rm -f .[a-z]*~ \#*
rm -f $(PRJDIR)/bin/sdcc sdcc
- for port in $(PORTS) ; do\
- $(MAKE) -C $$port clean ;\
+ for port in $(CLEANALLPORTS) ; do\
+ $(MAKE) -C $$port -f ../port-clean.mk clean ;\
done
--- /dev/null
+clean:
+ rm -f $(LIB) *.o *~ port.a *.lst *.asm *.sym *~ *.cdb *.dep *.rul
+
+distclean: clean
+
include Makefile.dep
-clean:
- rm -f $(LIB) *.o *~ port.a $(CLEANSPEC)
+include ../port-clean.mk
wassert (0);
}
- else if (shCount >= (size * 8))
- while (size--)
- aopPut (AOP (result), "!zero", size);
+ else if (shCount >= (size * 8))
+ {
+ while (size--)
+ {
+ aopPut (AOP (result), "!zero", size);
+ }
+ }
else
{
switch (size)
genlshTwo (result, left, shCount);
break;
case 4:
- wassert (0);
+ wassertl (0, "Shifting of longs is currently unsupported");
break;
default:
wassert (0);
+PRJDIR = ../..
+
# Deleting all files created by building the program
# --------------------------------------------------
clean:
--- /dev/null
+PRJDIR = ../..
+
+# Deleting all files created by building the program
+# --------------------------------------------------
+clean:
+ rm -f *core *[%~] *.[oa]
+ rm -f .[a-z]*~
+ rm -f $(PRJDIR)/bin/sdcpp
+
+
+# Deleting all files created by configuring or building the program
+# -----------------------------------------------------------------
+distclean: clean
+ rm -f config.cache config.log config.status
+ rm -f Makefile *.dep auto-host.h configargs.h cstamp-h
+
+
+# Like clean but some files may still exist
+# -----------------------------------------
+mostlyclean: clean
+
+
+# Deleting everything that can reconstructed by this Makefile. It deletes
+# everything deleted by distclean plus files created by bison, etc.
+# -----------------------------------------------------------------------
+realclean: distclean
# BeginGeneric rules
clean:
- rm -rf $(CASES_DIR) $(RESULTS_DIR)
+ rm -rf $(CASES_DIR) $(RESULTS_DIR) *.pyc
inter-port-clean:
rm -f fwk/lib/*.o
--- /dev/null
+/*
+ *-------------------------------------------------
+ */
+ int putch( int Ch )
+{
+ return( Ch );
+}
+ /*
+ * *-------------------------------------------------
+ * */
+ int puts( char *Str )
+{
+ char *Ptr;
+
+ for( Ptr = Str; *Ptr != '\0'; Ptr++ )
+ {
+ putch( *Ptr );
+ }
+
+ return( (Ptr - Str) );
+}
+ /*
+ * *--------------------------------------------------
+ * */
+ void main( void )
+{
+ puts( "hello world\n" );
+}
+ /*
+ * *----------------------------------------------------
+ * */
--- /dev/null
+long leftShiftLong (long l) {
+ /* PENDING: Disabled.
+ return (l << 3);
+ */
+ return l;
+}
+
+
+int leftShiftIntMasked (int v) {
+ /* PENDING: Disabled.
+ return ((v & 0xff00U) << 3);
+ */
+ return v;
+}
+
+int leftShiftIntMasked2 (int v) {
+ return ((v & 0xff) << 8);
+}
+
+
+int leftShiftIntMasked3 (int v) {
+ return ((v & 0xff) << 3);
+}
--- /dev/null
+typedef struct {
+ unsigned char year; /* Current
+ * year (with offset 1900) */
+ unsigned char month; /* Month (1 =
+ * Jan., ..., 12 = Dec.) */
+ unsigned char day; /* Day of
+ * month (1 to 31) */
+} DATE_STRUCT;
+
+unsigned char year;
+unsigned char month;
+unsigned char day;
+
+void *main()
+{
+ float i;
+ float y;
+ void *p;
+ DATE_STRUCT d;
+ DATE_STRUCT *date_ptr;
+
+ date_ptr = &d;
+
+ year = date_ptr->year;
+ month = date_ptr->month;
+ day = date_ptr->day;
+
+ i = 1.35;
+ i += 2;
+ y = 1;
+ y = y+i;
+ i = y;
+ p = &y;
+ return p;
+}