diff --git a/platform/win32/Makefile b/platform/win32/Makefile new file mode 100644 index 000000000..d3200f209 --- /dev/null +++ b/platform/win32/Makefile @@ -0,0 +1,44 @@ +# Copyright (c) 2002-2004, Adam Dunkels. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote +# products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# This file is part of the Contiki desktop environment +# +# $Id: Makefile,v 1.1 2007/04/06 23:09:32 oliverschmidt Exp $ +# + +PRGS = about calc dhcp directory email ftp irc netconf processes shell \ + telnet webserver www +DSCS = about calc dhcp email ftp irc netconf processes shell telnet \ + webserver +all: contiki-main $(PRGS:=.prg) $(DSCS:=.dsc) + +APPNAME = ${subst processes,process-list,${subst www,webbrowser,$(1)}} + +CONTIKI = ../.. +APPS = program-handler ${call APPNAME,$(PRGS)} +TARGET = win32 +-include $(CONTIKI)/Makefile.include diff --git a/platform/win32/Makefile.win32 b/platform/win32/Makefile.win32 new file mode 100644 index 000000000..f04c80201 --- /dev/null +++ b/platform/win32/Makefile.win32 @@ -0,0 +1,47 @@ +ifndef CONTIKI + ${error CONTIKI not defined! You must specify where CONTIKI resides!} +endif + +CONTIKI_TARGET_DIRS = . cfs ctk loader +CONTIKI_TARGET_MAIN = ${addprefix $(OBJECTDIR)/,contiki-main.o} + +CONTIKI_TARGET_SOURCEFILES = contiki-main.c cfs-win32.c ctk-console.c dll-loader.c + +CONTIKI_SOURCEFILES += $(CTK) ctk-conio-service.c ctk-draw.c $(CONTIKI_TARGET_SOURCEFILES) + +.SUFFIXES: + +### Define the CPU directory +CONTIKI_CPU = $(CONTIKI)/cpu/native +include $(CONTIKI)/cpu/native/Makefile.native + +CFLAGS += -DWITH_LOADER_ARCH +LDFLAGS += -Wl,--out-implib=contiki-main.$(TARGET).a \ + -u _cfs_find_service -u _uiplib_ipaddrconv + +### Generate the module-link prerequisites +define PRG_TEMPLATE +$(1).prg: $${addprefix $$(OBJECTDIR)/,$$($(2)_src:.c=.o)} +endef +define DSC_TEMPLATE +$(1).dsc: $${addprefix $$(OBJECTDIR)/,$$($(2)_dsc:.c=.o)} +endef +${foreach PRG,$(PRGS),${eval ${call PRG_TEMPLATE,$(PRG),${call APPNAME,$(PRG)}}}} +${foreach DSC,$(DSCS),${eval ${call DSC_TEMPLATE,$(DSC),${call APPNAME,$(DSC)}}}} + +### Generic module-compile and -link rule, no prerequisites here! +### (The *.d files contain the full module-compile prerequisites) +${sort ${foreach PRG,$(PRGS), ${addprefix $(OBJECTDIR)/, \ + $(${call APPNAME,$(PRG)_src:.c=.o})}}}: + $(CC) $(CFLAGS) -DAUTOSTART_ENABLE -D_USRDLL -DPROCESS_LOADABLE -c $< -o $@ +$(PRGS:=.prg): + $(LD) -shared $^ contiki-main.$(TARGET).a -o $@ +$(DSCS:=.dsc): + $(LD) -shared $^ contiki-main.$(TARGET).a -o $@ + +### Setup directory search path for source files +CONTIKI_TARGET_DIRS_CONCAT = ${addprefix $(CONTIKI)/platform/$(TARGET)/, \ + $(CONTIKI_TARGET_DIRS)} +vpath %.c $(PROJECTDIRS) \ + $(CONTIKIDIRS) $(APPDIRS) $(CONTIKI_TARGET_DIRS_CONCAT) \ + $(CONTIKI_CPU) $(APP_DIRS) diff --git a/platform/win32/conio.h b/platform/win32/conio.h new file mode 100644 index 000000000..88479cdc7 --- /dev/null +++ b/platform/win32/conio.h @@ -0,0 +1,2 @@ +#include "ctk/ctk.h" +#include "ctk/ctk-console.h" diff --git a/platform/win32/contiki-conf.h b/platform/win32/contiki-conf.h index 681c39aa3..1ad883c4c 100644 --- a/platform/win32/contiki-conf.h +++ b/platform/win32/contiki-conf.h @@ -15,7 +15,9 @@ +#ifdef _MSC_VER #define strcasecmp _stricmp +#endif @@ -35,9 +37,6 @@ typedef unsigned long clock_time_t; #include #define ctk_arch_isprint isprint -typedef char ctk_arch_key_t; -#include "ctk/ctk-console.h" - #define CH_ULCORNER 0xDA #define CH_URCORNER 0xBF #define CH_LLCORNER 0xC0 diff --git a/platform/win32/contiki-main.c b/platform/win32/contiki-main.c index 1b92ae95c..c3f2caeb8 100644 --- a/platform/win32/contiki-main.c +++ b/platform/win32/contiki-main.c @@ -30,7 +30,7 @@ * * Author: Oliver Schmidt * - * $Id: contiki-main.c,v 1.3 2007/01/03 10:36:58 oliverschmidt Exp $ + * $Id: contiki-main.c,v 1.4 2007/04/06 23:09:32 oliverschmidt Exp $ */ #define WIN32_LEAN_AND_MEAN @@ -42,6 +42,8 @@ #include "contiki-net.h" #include "sys/clock.h" +#include "ctk/ctk.h" +#include "ctk/ctk-console.h" #include "../../apps/directory/directory-dsc.h" #include "../../apps/webbrowser/www-dsc.h" @@ -102,8 +104,8 @@ clock_time(void) return clock(); } /*-----------------------------------------------------------------------------------*/ -void -main(int argc) +int +main(void) { process_init(); diff --git a/platform/win32/ctk/ctk-console.c b/platform/win32/ctk/ctk-console.c index e63a92471..165ac4198 100644 --- a/platform/win32/ctk/ctk-console.c +++ b/platform/win32/ctk/ctk-console.c @@ -30,7 +30,7 @@ * * Author: Oliver Schmidt * - * $Id: ctk-console.c,v 1.5 2006/10/03 11:27:51 oliverschmidt Exp $ + * $Id: ctk-console.c,v 1.6 2007/04/06 23:09:33 oliverschmidt Exp $ */ #define WIN32_LEAN_AND_MEAN @@ -38,6 +38,7 @@ #include #include "contiki.h" +#include "ctk/ctk.h" #include "ctk-console.h"