Allow to build platform/win32 using Cygwin and the Contiki build system. The WinPcap driver is missing as it is about to be changed from dynamic to static loading anyway.

This commit is contained in:
oliverschmidt 2007-04-06 23:09:32 +00:00
parent 5532354cd8
commit 5653794966
6 changed files with 102 additions and 7 deletions

44
platform/win32/Makefile Normal file
View file

@ -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

View file

@ -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)

2
platform/win32/conio.h Normal file
View file

@ -0,0 +1,2 @@
#include "ctk/ctk.h"
#include "ctk/ctk-console.h"

View file

@ -15,7 +15,9 @@
#ifdef _MSC_VER
#define strcasecmp _stricmp #define strcasecmp _stricmp
#endif
@ -35,9 +37,6 @@ typedef unsigned long clock_time_t;
#include <ctype.h> #include <ctype.h>
#define ctk_arch_isprint isprint #define ctk_arch_isprint isprint
typedef char ctk_arch_key_t;
#include "ctk/ctk-console.h"
#define CH_ULCORNER 0xDA #define CH_ULCORNER 0xDA
#define CH_URCORNER 0xBF #define CH_URCORNER 0xBF
#define CH_LLCORNER 0xC0 #define CH_LLCORNER 0xC0

View file

@ -30,7 +30,7 @@
* *
* Author: Oliver Schmidt <ol.sc@web.de> * Author: Oliver Schmidt <ol.sc@web.de>
* *
* $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 #define WIN32_LEAN_AND_MEAN
@ -42,6 +42,8 @@
#include "contiki-net.h" #include "contiki-net.h"
#include "sys/clock.h" #include "sys/clock.h"
#include "ctk/ctk.h"
#include "ctk/ctk-console.h"
#include "../../apps/directory/directory-dsc.h" #include "../../apps/directory/directory-dsc.h"
#include "../../apps/webbrowser/www-dsc.h" #include "../../apps/webbrowser/www-dsc.h"
@ -102,8 +104,8 @@ clock_time(void)
return clock(); return clock();
} }
/*-----------------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------------*/
void int
main(int argc) main(void)
{ {
process_init(); process_init();

View file

@ -30,7 +30,7 @@
* *
* Author: Oliver Schmidt <ol.sc@web.de> * Author: Oliver Schmidt <ol.sc@web.de>
* *
* $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 #define WIN32_LEAN_AND_MEAN
@ -38,6 +38,7 @@
#include <stdlib.h> #include <stdlib.h>
#include "contiki.h" #include "contiki.h"
#include "ctk/ctk.h"
#include "ctk-console.h" #include "ctk-console.h"