Commit graph

39 commits

Author SHA1 Message Date
Peter A. Bigot 5fc0575e99 Makefile.include: support make clean all
Historically $(OBJECTDIR) was created when Makefile.include is read.  A
consequence is that combining "clean" with "all" (or any other build
target) results in an error because the clean removes the object
directory that is required to exist when building dependencies.
Creating $(OBJECTDIR) on-demand ensures it is present when needed.

Removed creation of $(OBJECTDIR) on initial read, and added an order-only
dependency forcing its creation all Makefile* rules where the target is
explicitly or implicitly in $(OBJECTDIR).
2013-06-20 17:45:41 -05:00
Oliver Schmidt 79bb5ea73f Removed some more old RCS tags from the Contiki source tree. 2013-06-13 15:54:26 +02:00
Oliver Schmidt 61b90c0126 We actually need PROJECT_OBJECTFILES and PROJECT_LIBRARIES for retro builds too. 2013-02-16 22:57:50 +01:00
Oliver Schmidt 98060c1eab Moved from last cc65 release (2.13.3) to recent cc65 snapshot (2.13.9).
Relevant cc65 changes...

General:
- The compiler generates "extended" dependency info (like gcc) so there's no need for postprocessing whatsoever :-)
- The linker is very pernickety regarding the ordering of cmdline options so a custom linker rule is necessary :-(

Apple2:
- The various memory usage scenarios aren't specified anymore via separate linker configs but via defines overriding default values in the builtin linker config.

Atari:
- The builtin linker config allows to override the start addr so there no more need for a custom linker config.
- The C library comes with POSIX directory access. So there's no more need for for a custom coding.

CBM:
- The C library comes with POSIX directory access. So there's no more need for for a custom coding.
2013-02-14 15:42:43 +01:00
oliverschmidt 8c87f85a1d Made cc65 build compatible with make.exe from GnuWin32 and cmd.exe. We just live without the phony targets when building with cmd.exe - the next cc65 release will make the whole sed thingy obsolete anyway :-) 2011-01-23 16:30:30 +00:00
oliverschmidt 5e10cf2eed Implemented cfs_opendir() and friends for CBMs based on cc65's cbm_opendir() and friends. 2010-10-23 13:48:06 +00:00
oliverschmidt 9e9eb4b55c There's no point in pulling in cfs-posix-dir.c if the POSIX functions it depends on are dummies anyway. 2010-10-23 08:17:45 +00:00
oliverschmidt 55d61d317b Allow cc65 ethernet drivers to be loaded statically instead of dynamically. This saved quite some space in scenarios without additional cc65 drivers to be loaded for i.e. a mouse because in those scenarios the cc65 module loader isn't necessary. And without the module loader typically the cc65 heap manager isn't necessary. 2010-09-28 23:02:16 +00:00
oliverschmidt 2d40c75efe Allow 6502 ctk programs (all running in non-window mode) to exit the Contiki process by calling LOAD_UNLOAD(). 2010-02-04 23:52:30 +00:00
oliverschmidt fda46f6800 - cc65 2.13. allows to define all necessary paths through the single env var CC65_HOME.
- cc65 2.13. allows to override the stacksize from the linker command line thus eliminating the need for linker configs maintained by Contiki.
- cc65 2.13. integrates the startup code with the library. In 2.12. the startup code pulled in main(). Now main() is supposed to pull in the startup code. But  if main() resides itself in a library (as with Contiki) then nothing is pulled in at all :-(. The workaround is to pull in main() explicitly through the new option -u (working like the same GCC option).
2009-10-18 11:34:38 +00:00
oliverschmidt 738397b855 cc65 generates dependency files having the list of prerequisites start with a tab character.
The processing done in the canned command sequence FINALIZE_DEPENDENCY brings this tab character to the beginning of the line making the empty rule look like a command.

Therefore we replace the tab character in question with a blank.
2009-07-26 21:27:43 +00:00
oliverschmidt 7a228fea41 Replaced classic approach of generating dependency files via rule with generating them as side effect of generating object files. The issue with "No rule to make target ..." is solved as suggested in http://make.paulandlesley.org/autodep.html.
At least with gcc (and cc65) the dependency files are generated without an additional run of the C compiler. This is especially beneficial on Cygwin because of the fork() performance issue.
2009-07-02 22:36:04 +00:00
oliverschmidt 929da590be Removed '!' as gnumake already adds '.'. 2008-05-22 19:43:08 +00:00
oliverschmidt a500f2dd73 Removed unused variable. 2008-03-04 22:56:54 +00:00
oliverschmidt 5592b1df6c Implement cfs API on preprocessor level using POSIX functions.. 2007-12-23 15:29:19 +00:00
oliverschmidt 0564cc50fd Splitted POSIX based cfs implementation to avoid pulling in potentially large POSIX directory I/O functions without needing them at all. 2007-12-21 01:36:01 +00:00
oliverschmidt 1863f8aef2 Added generic ctk mouse implementation based on cc65 mouse drivers. 2007-12-20 22:47:39 +00:00
oliverschmidt 333ad36a4a Added general ctk support to the cc65 build. 2007-12-16 17:03:27 +00:00
oliverschmidt b32f0643ab Moved stuff into sys subdir to clean up the apple2enh dir (and because the corresponding shared res. cpu stuff is in the sys dir as well). 2007-12-15 11:04:11 +00:00
oliverschmidt 382603b581 Made error_exit() implementation target-specific. 2007-12-08 22:21:50 +00:00
oliverschmidt 70321f690f Made error_exit() implementation target-specific. 2007-12-08 22:16:43 +00:00
oliverschmidt 9f1feb6e26 Added LAN91C96 driver. 2007-11-30 12:34:08 +00:00
oliverschmidt 9d39b4be54 Added global error_exit() and config read function to build. 2007-11-27 21:43:32 +00:00
oliverschmidt 18d591206e Added (default) log implementation for cc65 targets. 2007-11-27 16:48:44 +00:00
oliverschmidt 74c4e10f23 No reason to not just compile petsciiconv.c for all cc65 targets. 2007-11-25 21:43:55 +00:00
oliverschmidt a2dd620ecc Allow the webserver and telnetd examples to build. 2007-11-22 11:40:17 +00:00
oliverschmidt da44474fd4 Generic Ethernet driver for cc65 targets. The actual hardware driver is loaded as relocatable module. 2007-11-20 21:10:20 +00:00
oliverschmidt 34af8fbc1a Fixed recent change. 2007-08-30 20:47:14 +00:00
matsutsuka 9d4fc0a1a8 Support for z80(sdcc) port.
In order to support, some core modules are modified as follows:

core/sys/dsc.h
- If CTK_CONF_ICONS is diabled, the whole icon-related code is disabled.
- DSC_HEADER is changed to remove extra semicolon.

core/sys/process.h
- process_data_t is expressed by void* in signatures (known bug on sdcc).

core/sys/autostart.h
- autostart_processes is changed to remove extra semicolon.

core/sys/cc.h
- CC_CONF_ASSIGN_AGGREGATE is introduced.
- CC_CONF_INC_CAST_POINTER is introduced, a workaround of a kind
  of sdcc bug for an increment.

core/net/hc.c
core/net/uip_arp.c
core/net/uaodv.c
- Aggregation assignments are changed to uip_ipaddr_copy.

core/net/psock.c
core/net/uipbuf.c
core/net/dhcpc.c
apps/shell/shell.c
core/ctk/vnc-server.c
core/ctk/vnc-out.c
- "register" keyword in a signature cannot be used in sdcc,
  CC_REGISTER_ARG is used instead.

core/net/uip-over-mesh.c
- An extra semicolon is removed.

apps/dhcp/dhcp-dsc.c
apps/shell/shell-dsc.
apps/ftp/ftp-dsc.c
apps/process-list/process-list-dsc.c
apps/email/email-dsc.c
apps/webserver/webserver-dsc.c
apps/vnc/vnc-dsc.c
apps/vnc/vnc-viewer.h
apps/webbrowser/www-dsc.c
apps/about/about-dsc.c
apps/irc/irc-dsc.c
apps/telnet/telnet-dsc.c
apps/telnetd/telnetd-dsc.c
apps/netconf/netconf-dsc.c
apps/directory/directory-dsc.c
pps/calc/calc-dsc.c
- Modify an extern type to a real declaration, which is static
  to prevent a compile error.

core/net/mac/xmac.c
- Variables cannot be defined in a head of block on sdcc.

core/ctk/ctk.h
core/ctk/ctk.c
apps/program-handler/program-handler.c
- If CTK_CONF_ICONS is diabled, the whole icon-related code is disabled.

Makefile.include
- Add a set of configuration for an assembler.
- $(CLEAN) variable is introduced for customized cleanup.

apps/process-list/process-list.c
- PROCESSLIST_CONF_HEIGHT is introduced to address smaller screen size.

core/lib/ctk-filedialog.c
- FILES_CONF_HEIGHT is introduced to address smaller screen size.
- "register" keyword in a signature cannot be used in sdcc,
  CC_REGISTER_ARG is used instead.

apps/vnc/vnc-viewer.c
- A cast is added to prevent a compile error.
- "register" keyword in a signature cannot be used in sdcc,
  CC_REGISTER_ARG is used instead.

apps/webbrowser/webclient.c
- CC_CONF_INC_CAST_POINTER is introduced, a workaround of a kind
  of sdcc bug for an increment.

core/loader/elfloader.c
- A cast is added to prevent a compile error.

core/net/rime/rimeaddr.c
- An initialization is added to prevent a compile error.

core/net/rime/rudolph0.c
- NULL is changed to 0, because NULL causes a compile error.

core/net/rime/route-discovery.c
- Add an argument to match the definition of nf_callbacks.

cpu/z80/strcasecmp.h
cpu/z80/strcasecmp.c
cpu/z80/contiki-sdcc-conf.h
cpu/z80/mtarch.c
cpu/z80/mtarch.h
cpu/z80/Makefile.z80
- New files to make compilation availble on sdcc.
- Added support for multithreading.
2007-08-30 14:39:16 +00:00
oliverschmidt b23f4fc89d Added a Contiki clock_time() implementation based on the cc65 clock() implementation. 2007-05-29 21:56:21 +00:00
oliverschmidt ae2073cac9 Factored out setup directory search path for source files into Makefile.include.
- All compilers used support the -I option for setting an include search directory.

- The Contiki source tree follows the (common) approach of placing declarations (in headerf iles) in the same directory as definitions (in source files).

As a result it makes sense to use the -I compiler option for just the same set of directories used for the vpath gnumake directive.

Note: I checked several builds but nevertheless one or the other might need some additional adjustsments. Sorry for the inconvenience.
2007-05-19 07:54:53 +00:00
oliverschmidt 237b1617b5 Factored out setup directory search path for source files into Makefile.include.
- Search target specific directories before CPU specific directories.
- Search CPU specific directories before generic directories.

Note: I checked several builds but nevertheless one or the other might need some additional adjustsments. Sorry for the inconvenience.
2007-05-13 08:41:11 +00:00
oliverschmidt 8d3496194f Added Multithreading support to the cc65 targets based on the Contiki 1.x C64 implementation with the following changes:
- Added support for the function parameter.
- Removed support for preemption because:
  - No other current implementation does so.
  - Preemption support would make the code at least target-dependent or it wouldn't work at all (as on plain Apple2 machines without timer interrupt).
2007-04-21 22:15:45 +00:00
oliverschmidt ec2411d5ea Structured the cc65 makefile like all the other makefiles in the Contiki 2.x build system. 2007-04-21 15:04:23 +00:00
oliverschmidt 5d62bbd039 Used SED to replace the assembler sources with the objects in the dependency file generated by the cc65 compiler. This allows to hide the assembler sources from GNU make which solves several issues. Now the cc65 toolchain behaves very similiar to gcc from the GNU make perspective. 2007-04-21 13:23:47 +00:00
oliverschmidt 48977bd89f Replaced the PROJECT_OBJECTFILES hack with puting the Contiki library (containing contiki-main.o) and the cc65 libary into a cc65 "library group" which allows mutual crossreferences between the libraries in the group. 2007-04-18 22:52:22 +00:00
oliverschmidt c7e8ac499e Consistently use curly brackets for function calls (and add the same disclaimer as used in "my" other makefiles). 2007-04-14 15:55:50 +00:00
oliverschmidt 5d2f948bba Allow to build the statically linked telnet-server and webserver examples using cc65. 2007-03-03 13:38:07 +00:00
oliverschmidt ef8ae0e158 Added an initial Makefile for the cc65 tool chain (www.cc65.org). For now it allows to build the statically linked hello-world example. 2007-01-03 10:26:40 +00:00