# -*- makefile -*- SHELL = $(COMSPEC) MKFILES = Makefile NULL = nul #### Start of system configuration section. #### ## variables may be overridden by $(compile_dir)/Makefile !ifndef srcdir srcdir = .. !endif !ifndef RUBY_INSTALL_NAME RUBY_INSTALL_NAME = ruby !endif !if !defined(RUBYW_INSTALL_NAME) || "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)" RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME:ruby=rubyw) !endif !if "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)" RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME)w !endif !if !defined(icondirs) && defined(ICONDIRS) icondirs=$(ICONDIRS) !endif !if defined(icondirs) icondirs=$(icondirs:\=/) iconinc=-I$(icondirs: = -I) !endif ############### .SUFFIXES: .y .def .lib !if !defined(CC) CC = cl !endif !if !defined(CPP) || "$(CPP)" == "cl" CPP = $(CC) -E !endif !if !defined(YACC) YACC = bison YFLAGS = -o y.tab.c !endif AR = lib -nologo PURIFY = AUTOCONF = autoconf RM = $(srcdir)\win32\rm.bat !if !defined(BASERUBY) BASERUBY = ruby !endif !if !defined(PROCESSOR_ARCHITECTURE) PROCESSOR_ARCHITECTURE = x86 !endif MACHINE = $(PROCESSOR_ARCHITECTURE) !if "$(PROCESSOR_ARCHITECTURE)" == "x86" !if !defined(PROCESSOR_LEVEL) PROCESSOR_LEVEL = 5 !endif !if 6 < $(PROCESSOR_LEVEL) PROCESSOR_LEVEL = 6 !endif PROCESSOR_FLAG = -G$(PROCESSOR_LEVEL) CPU = i$(PROCESSOR_LEVEL)86 ARCH = i386 !else CPU = $(PROCESSOR_ARCHITECTURE) ARCH = $(PROCESSOR_ARCHITECTURE) !endif !if !defined(DEBUGFLAGS) DEBUGFLAGS = -Zi !endif !if !defined(OPTFLAGS) OPTFLAGS = -w -O2b2xg- !endif !if !defined(OS) || !defined(RT) OS = mswince RT = $(OS) !endif !ifndef RUBY_SO_NAME RUBY_SO_NAME = $(RT)-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR) !endif !ifndef RUBY_PLATFORM RUBY_PLATFORM = $(ARCH)-$(OS) !endif !if !defined(prefix) prefix = /usr !endif !if !defined(exec_prefix) exec_prefix = $(prefix) !endif !if !defined(libdir) libdir = $(exec_prefix)/lib !endif !if !defined(datadir) datadir = $(prefix)/share !endif !ifndef EXTOUT EXTOUT = .ext !endif !ifndef RIDATADIR RIDATADIR = $(DESTDIR)$(datadir)/ri/$(MAJOR).$(MINOR)/system !endif !ifndef RDOCTARGET RDOCTARGET = install-doc !endif OUTFLAG = -Fe !if !defined(CFLAGS) CFLAGS = $(DEBUGFLAGS) $(OPTFLAGS) $(PROCESSOR_FLAG) !endif !if !defined(CPPFLAGS) CPPFLAGS = $(CECPUDEF) -DUNDER_CE -D_WIN32_WCE=$(SUBSYSVERSION:.=) \ -DFILENAME_MAX=MAX_PATH -DTLS_OUT_OF_INDEXES=0xFFFFFFFF \ -DBUFSIZ=512 -D_UNICODE -DUNICODE !endif !if !defined(CXXFLAGS) CXXFLAGS = $(CFLAGS) !endif !if !defined(LDFLAGS) LDFLAGS = -link -incremental:yes -pdb:none -machine:$(MACHINE) -subsystem:$(SUBSYSTEM) !endif !if !defined(XLDFLAGS) XLDFLAGS = -stack:$(STACK) -subsystem:$(SUBSYSTEM) !endif !if !defined(RFLAGS) RFLAGS = -r !endif !if !defined(EXTLIBS) EXTLIBS = !endif LIBS = coredll.lib ceshell.lib winsock.lib $(EXTLIBS) MISSING = acosh.obj crypt.obj dup2.obj erf.obj hypot.obj \ isinf.obj isnan.obj strftime.obj strlcat.obj strlcpy.obj win32.obj \ assert.obj direct.obj errno.obj io_wce.obj process_wce.obj \ signal_wce.obj stdio.obj stdlib.obj string_wce.obj \ time_wce.obj wince.obj winsock2.obj \ stat.obj timeb.obj utime.obj ARFLAGS = -machine:$(MACHINE) -out: CC = $(CC) -nologo LD = $(CC) LDSHARED = $(LD) -LD XCFLAGS = -DRUBY_EXPORT -I. -I$(srcdir) -I$(srcdir)/missing -I$(srcdir)/wince DLDFLAGS = $(LDFLAGS) -dll SOLIBS = LIBRUBY_LDSHARED = $(LDSHARED) LIBRUBY_DLDFLAGS = $(EXTLDFLAGS) -def:$(RUBYDEF) EXEEXT = .exe PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT) RUBYDEF = $(RUBY_SO_NAME).def MINIRUBY = $(RUBY) -I$(MAKEDIR) -rfake RUNRUBY = $(MINIRUBY) "$(srcdir)/runruby.rb" --extout="$(EXTOUT)" -- !ifndef RUBY RUBY = ruby !endif !if !defined(STACK) STACK = 0x200000,0x10000 !endif ORGLIBPATH = $(LIB) #### End of system configuration section. #### LIBRUBY_A = $(RUBY_SO_NAME)-static.lib LIBRUBY_SO = $(RUBY_SO_NAME).dll LIBRUBY = $(RUBY_SO_NAME).lib LIBRUBYARG = $(LIBRUBY) THREAD_MODEL = win32 PREP = fake.rb !if !defined(EXTSTATIC) EXTSTATIC = !endif OBJEXT = obj ASMEXT = asm INSTALLED_LIST= .installed.list WINMAINOBJ = wincemain.$(OBJEXT) arch_hdrdir = $(EXTOUT)/include/$(arch) hdrdir = $(srcdir)/include VPATH = $(arch_hdrdir)/ruby;$(hdrdir)/ruby;$(srcdir);$(srcdir)/enc;$(srcdir)/missing;$(srcdir)/wince all: $(srcdir)/wince/Makefile.sub $(srcdir)/common.mk ruby: $(PROGRAM) CONFIG_H = ./.config.h.time config: config.status config.status: $(CONFIG_H) BANG = ! !if exist(config.h) !include config.h !endif $(CONFIG_H): $(MKFILES) $(srcdir)/wince/Makefile.sub @echo Creating config.h @$(srcdir:/=\)\win32\ifchange.bat config.h << #define STDC_HEADERS 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 #define HAVE_MEMORY_H 1 #define HAVE_OFF_T 1 #define SIZEOF_INT 4 #define SIZEOF_SHORT 2 #define SIZEOF_LONG 4 #define SIZEOF_LONG_LONG 0 #define SIZEOF___INT64 8 #define SIZEOF_OFF_T 4 #define SIZEOF_VOIDP 4 #define SIZEOF_FLOAT 4 #define SIZEOF_DOUBLE 8 #define SIZEOF_TIME_T 4 #define HAVE_PROTOTYPES 1 #define TOKEN_PASTE(x,y) x##y #define HAVE_STDARG_PROTOTYPES 1 !if $(MSC_VER) > 1100 #define NORETURN(x) __declspec(noreturn) x !endif !if $(MSC_VER) >= 1300 #define DEPRECATED(x) __declspec(deprecated) x #define NOINLINE(x) __declspec(noinline) x !endif #define RUBY_EXTERN extern __declspec(dllimport) #define HAVE_DECL_SYS_NERR 1 #define HAVE_FCNTL_H 1 #define HAVE_SYS_UTIME_H 1 #define HAVE_FLOAT_H 1 #define rb_uid_t int #define rb_gid_t int #define rb_pid_t int #define HAVE_STRUCT_STAT_ST_RDEV 1 #define HAVE_ST_RDEV 1 #define GETGROUPS_T int #define RETSIGTYPE void #define HAVE_MEMCMP 1 #define HAVE_MEMMOVE 1 #define HAVE_MKDIR 1 #define HAVE_STRCASECMP 1 #define HAVE_STRNCASECMP 1 #define HAVE_STRERROR 1 #define HAVE_STRFTIME 1 #define HAVE_STRCHR 1 #define HAVE_STRSTR 1 #define HAVE_STRTOD 1 #define HAVE_STRTOL 1 #define HAVE_STRTOUL 1 #define HAVE_FLOCK 1 #define HAVE_SNPRINTF 1 #define HAVE_VSNPRINTF 1 #define HAVE_FINITE 1 #define HAVE_HYPOT 1 #define HAVE_FMOD 1 #define HAVE_FREXP 1 #define HAVE_MODF 1 #define HAVE_WAITPID 1 #define HAVE_GETCWD 1 #define HAVE_CHSIZE 0 #define HAVE_TIMES 1 #define HAVE_FCNTL 1 #define HAVE_TELLDIR 1 #define HAVE_SEEKDIR 1 #define HAVE_MKTIME 1 #define HAVE_COSH 1 #define HAVE_SINH 1 #define HAVE_TANH 1 #define HAVE_TZNAME 1 #define HAVE_DAYLIGHT 1 #define SETPGRP_VOID 1 #define RSHIFT(x,y) ((x)>>(int)y) #define inline __inline #define NEED_IO_SEEK_BETWEEN_RW 1 #define DEFAULT_KCODE KCODE_NONE #define DLEXT ".so" #define RUBY_LIB "/lib/ruby/$(MAJOR).$(MINOR)" #define RUBY_SITE_LIB "/lib/ruby/site_ruby" #define RUBY_SITE_LIB2 "/lib/ruby/site_ruby/$(MAJOR).$(MINOR)" #define RUBY_VENDOR_LIB "/lib/ruby/vendor_ruby" #define RUBY_VENDOR_LIB2 "/lib/ruby/vendor_ruby/$(MAJOR).$(MINOR)" #define RUBY_PLATFORM "$(ARCH)-$(OS)" #define RUBY_ARCHLIB "/lib/ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(OS)" #define RUBY_SITE_ARCHLIB "/lib/ruby/site_ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(RT)" #define RUBY_VENDOR_ARCHLIB "/lib/ruby/vendor_ruby/$(MAJOR).$(MINOR)/$(ARCH)-$(RT)" #define LIBRUBY_SO "$(LIBRUBY_SO)" #if 0 $(BANG)if "$(RUBY_SO_NAME)"!="$$(RUBY_SO_NAME)" || "$(ARCH)-$(OS)"!="$$(ARCH)-$$(OS)" config.h: nul $(BANG)endif #endif #define GC_MALLOC_LIMIT 4000000 #define stricmp _stricmp #define fopen wce_fopen #define open _open #define read _read #define write _write #define lseek _lseek #if _WIN32_WCE < 300 #define isascii(c) ( (c>=0x00&&c<=0x7f)?1:0 ) #define isspace(c) ( ((c>=0x09&&c<=0x0d)||c==0x20)?1:0 ) #define isdigit(c) ( (c>=0x30&&c<=0x39)?1:0 ) #define isupper(c) ( (c>='A'&&c<='Z')?1:0 ) #define isalpha(c) ( ((c>='A'&&c<='Z')||(c>='a'&&c<='z'))?1:0 ) #define isprint(c) ( (c>=0x20&&c<=0x7e)?1:0 ) #define isalnum(c) ( (isalpha(c)||isdigit(c))?1:0 ) #define iscntrl(c) ( ((c>=0x00&&c<=0x1f)||c==0x7f)?1:0 ) #define islower(c) ( (c>='a'&&c<='z')?1:0 ) #define ispunct(c) ( !(isalnum(c)||isspace(c))?1:0 ) #define isxdigit(c) ( ((c>=0&&c<=9)||(c>='A'&&c<='F')||(c>='a'&&c<='f'))?1:0 ) #endif << @exit > $(@:/=\) config.status: $(MKFILES) $(srcdir)/wince/Makefile.sub $(srcdir)/common.mk @echo Creating $@ @exit <<$@ # Generated automatically by Makefile.sub. s,@SHELL@,$$(COMSPEC),;t t s,@BUILD_FILE_SEPARATOR@,\,;t t s,@PATH_SEPARATOR@,;,;t t s,@CFLAGS@,$(CFLAGS),;t t s,@CPPFLAGS@,$(CPPFLAGS),;t t s,@CXXFLAGS@,$(CXXFLAGS),;t t s,@FFLAGS@,$(FFLAGS),;t t s,@LDFLAGS@,,;t t s,@LIBS@,$(LIBS),;t t s,@exec_prefix@,$${prefix},;t t s,@prefix@,$(prefix),;t t s,@program_transform_name@,s,,,,;t t s,@bindir@,$${exec_prefix}/bin,;t t s,@sbindir@,$${exec_prefix}/sbin,;t t s,@libexecdir@,$${exec_prefix}/libexec,;t t s,@datadir@,$${prefix}/share,;t t s,@sysconfdir@,$${prefix}/etc,;t t s,@sharedstatedir@,/etc,;t t s,@localstatedir@,/var,;t t s,@libdir@,$${exec_prefix}/lib,;t t s,@includedir@,$${prefix}/include,;t t s,@oldincludedir@,/usr/include,;t t s,@infodir@,$${prefix}/info,;t t s,@mandir@,$${prefix}/man,;t t s,@build@,$(CPU)-pc-$(OS),;t t s,@build_alias@,$(CPU)-$(OS),;t t s,@build_cpu@,$(CPU),;t t s,@build_vendor@,pc,;t t s,@build_os@,$(OS),;t t s,@host@,$(CPU)-pc-$(OS),;t t s,@host_alias@,$(CPU)-$(OS),;t t s,@host_cpu@,$(CPU),;t t s,@host_vendor@,pc,;t t s,@host_os@,$(OS),;t t s,@target@,$(ARCH)-pc-$(OS),;t t s,@target_alias@,$(ARCH)-$(OS),;t t s,@target_cpu@,$(ARCH),;t t s,@target_vendor@,pc,;t t s,@target_os@,$(OS),;t t s,@CC@,$(CC),;t t s,@CPP@,$(CPP),;t t s,@CXX@,$$(CC),;t t s,@LD@,$$(CC),;t t s,@YACC@,$(YACC),;t t s,@RANLIB@,,;t t s,@AR@,$(AR),;t t s,@ARFLAGS@,$(ARFLAGS),;t t s,@LN_S@,$(LN_S),;t t s,@SET_MAKE@,$(SET_MAKE),;t t s,@CP@,copy > nul,;t t s,@LIBOBJS@, acosh.obj crypt.obj erf.obj strlcat.obj strlcpy.obj win32.obj isinf.obj isnan.obj,;t t s,@ALLOCA@,$(ALLOCA),;t t s,@DEFAULT_KCODE@,$(DEFAULT_KCODE),;t t s,@EXEEXT@,.exe,;t t s,@OBJEXT@,$(OBJEXT),;t t s,@XCFLAGS@,$(XCFLAGS),;t t s,@XLDFLAGS@,$(XLDFLAGS),;t t s,@DLDFLAGS@,$(DLDFLAGS) $$(LIBPATH) -def:$$(DEFFILE) -implib:$$(*F:.so=)-$$(arch).lib -pdb:$$(*F:.so=)-$$(arch).pdb,;t t s,@ARCH_FLAG@,$(ARCH_FLAG),;t t s,@STATIC@,$(STATIC),;t t s,@CCDLFLAGS@,,;t t s,@LDSHARED@,$(LDSHARED),;t t s,@DLEXT@,so,;t t s,@LIBEXT@,lib,;t t s,@STRIP@,$(STRIP),;t t s,@EXTSTATIC@,$(EXTSTATIC),;t t s,@setup@,Setup,;t t s,@MINIRUBY@,$(MINIRUBY),;t t s,@PREP@,miniruby$(EXEEXT),;t t s,@RUNRUBY@,$(RUNRUBY),;t t s,@EXTOUT@,$(EXTOUT),;t t s,@ARCHFILE@,,;t t s,@RDOCTARGET@,,;t t s,@LIBRUBY_LDSHARED@,$(LIBRUBY_LDSHARED),;t t s,@LIBRUBY_DLDFLAGS@,$(LIBRUBY_DLDFLAGS),;t t s,@RUBY_INSTALL_NAME@,$(RUBY_INSTALL_NAME),;t t s,@rubyw_install_name@,$(RUBYW_INSTALL_NAME),;t t s,@RUBYW_INSTALL_NAME@,$(RUBYW_INSTALL_NAME),;t t s,@RUBY_SO_NAME@,$(RUBY_SO_NAME),;t t s,@LIBRUBY_A@,$$(RUBY_SO_NAME)-static.lib,;t t s,@LIBRUBY_SO@,$$(RUBY_SO_NAME).dll,;t t s,@LIBRUBY_ALIASES@,$(LIBRUBY_ALIASES),;t t s,@LIBRUBY@,$$(RUBY_SO_NAME).lib,;t t s,@LIBRUBYARG@,$$(LIBRUBYARG_SHARED),;t t s,@LIBRUBYARG_STATIC@,$$(LIBRUBY_A),;t t s,@LIBRUBYARG_SHARED@,$$(LIBRUBY),;t t s,@SOLIBS@,$(SOLIBS),;t t s,@DLDLIBS@,$(DLDLIBS),;t t s,@ENABLE_SHARED@,yes,;t t s,@OUTFLAG@,$(OUTFLAG),;t t s,@CPPOUTFILE@,-P,;t t s,@LIBPATHFLAG@, -libpath:"%s",;t t s,@RPATHFLAG@,,;t t s,@LIBARG@,%s.lib,;t t s,@LINK_SO@,$$(LDSHARED) -Fe$$(@) $$(OBJS) $$(LIBS) $$(LOCAL_LIBS) $$(DLDFLAGS),;t t s,@COMPILE_C@,$$(CC) $$(INCFLAGS) $$(CFLAGS) $$(CPPFLAGS) -c -Tc$$(<:\=/),;t t s,@COMPILE_CXX@,$$(CXX) $$(INCFLAGS) $$(CXXFLAGS) $$(CPPFLAGS) -c -Tp$$(<:\=/),;t t s,@COMPILE_RULES@,{$$(srcdir)}.%s{}.%s: {$$(topdir)}.%s{}.%s: {$$(hdrdir)}.%s{}.%s: .%s.%s:,;t t s,@RULE_SUBST@,{.;$$(srcdir);$$(topdir);$$(hdrdir)}%s,;t t s,@TRY_LINK@,$$(CC) -Feconftest $$(INCFLAGS) -I$$(hdrdir) $$(CPPFLAGS) $$(CFLAGS) $$(src) $$(LOCAL_LIBS) $$(LIBS) -link $$(LDFLAGS) $$(LIBPATH) $$(XLDFLAGS),;t t s,@COMMON_LIBS@,coredll winsock,;t t s,@COMMON_MACROS@,WIN32_LEAN_AND_MEAN,;t t s,@COMMON_HEADERS@,winsock.h windows.h,;t t s,@EXPORT_PREFIX@, ,;t t s,@arch@,$(ARCH)-$(OS),;t t s,@sitearch@,$(ARCH)-$(RT),;t t s,@sitedir@,$${prefix}/lib/ruby/site_ruby,;t t s,@vendordir@,$${prefix}/lib/ruby/vendor_ruby,;t t s,@rubyhdrdir@,$$(includedir)/ruby-$$(MAJOR).$$(MINOR),;t t s,@sitehdrdir@,$$(rubyhdrdir)/site_ruby,;t t s,@vendorhdrdir@,$$(rubyhdrdir)/vendor_ruby,;t t s,@configure_args@,--with-make-prog=nmake --enable-shared $(configure_args),;t t s,@configure_input@,$$configure_input,;t t s,@srcdir@,$(srcdir),;t t s,@top_srcdir@,$(srcdir),;t t < $@ @del y.tab.c !include $(srcdir)/common.mk $(OBJS): {$(srcdir)}win32/win32.h dir.$(OBJEXT): {$(srcdir)}win32/dir.h ext/extinit.obj: ext/extinit.c $(SETUP) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) -Fo$@ -c ext/extinit.c