From 6d1de789052936e19aba0a2410e05b43fc452b1b Mon Sep 17 00:00:00 2001 From: tkelman Date: Fri, 21 Mar 2014 22:57:45 -0700 Subject: [PATCH] adjust linker invocation for msvc skip flisp unit test with msvc (for now?) skip a few headers (will need to find replacements for these) --- Make.inc | 2 +- src/Makefile | 10 ++++++++-- src/flisp/Makefile | 14 ++++++++++++-- ui/Makefile | 16 ++++++++++++---- ui/repl.h | 6 ++++-- 5 files changed, 37 insertions(+), 11 deletions(-) diff --git a/Make.inc b/Make.inc index d034dd373e0f0..bd80c01b3c9db 100644 --- a/Make.inc +++ b/Make.inc @@ -469,7 +469,7 @@ endif ifeq ($(OS), Darwin) WHOLE_ARCHIVE = -Xlinker -all_load NO_WHOLE_ARCHIVE = -else +else ifneq ($(USEMSVC), 1) WHOLE_ARCHIVE = -Wl,--whole-archive NO_WHOLE_ARCHIVE = -Wl,--no-whole-archive endif diff --git a/src/Makefile b/src/Makefile index e8e8d9dd1bc59..71ca68f9b9d22 100644 --- a/src/Makefile +++ b/src/Makefile @@ -79,8 +79,14 @@ flisp/libflisp.a: flisp/*.h flisp/*.c support/libsupport.a flisp/libflisp-debug.a: flisp/*.h flisp/*.c support/libsupport-debug.a $(MAKE) -C flisp debug +ifneq ($(USEMSVC), 1) +CXXLD = $(CXX) -shared +else +CXXLD = $(LD) -dll +endif + $(build_shlibdir)/libjulia-debug.$(SHLIB_EXT): julia.expmap $(DOBJS) flisp/libflisp-debug.a support/libsupport-debug.a $(LIBUV) - @$(call PRINT_LINK, $(CXX) $(DEBUGFLAGS) $(DOBJS) $(RPATH_ORIGIN) -shared -o $@ $(LDFLAGS) $(DEBUG_LIBS)) + @$(call PRINT_LINK, $(CXXLD) $(DEBUGFLAGS) $(DOBJS) $(RPATH_ORIGIN) -o $@ $(LDFLAGS) $(DEBUG_LIBS)) $(INSTALL_NAME_CMD)libjulia-debug.$(SHLIB_EXT) $@ libjulia-debug.a: julia.expmap $(DOBJS) flisp/libflisp-debug.a support/libsupport-debug.a rm -f $@ @@ -94,7 +100,7 @@ else endif $(build_shlibdir)/libjulia.$(SHLIB_EXT): julia.expmap $(OBJS) flisp/libflisp.a support/libsupport.a $(LIBUV) - @$(call PRINT_LINK, $(CXX) $(SHIPFLAGS) $(OBJS) $(RPATH_ORIGIN) -shared -o $@ $(LDFLAGS) $(RELEASE_LIBS) $(SONAME)) + @$(call PRINT_LINK, $(CXXLD) $(SHIPFLAGS) $(OBJS) $(RPATH_ORIGIN) -o $@ $(LDFLAGS) $(RELEASE_LIBS) $(SONAME)) $(INSTALL_NAME_CMD)libjulia.$(SHLIB_EXT) $@ libjulia.a: julia.expmap $(OBJS) flisp/libflisp.a support/libsupport.a rm -f $@ diff --git a/src/flisp/Makefile b/src/flisp/Makefile index 15e66bd021b1a..81a9ce4606607 100644 --- a/src/flisp/Makefile +++ b/src/flisp/Makefile @@ -64,15 +64,25 @@ $(LIBTARGET).a: $(OBJS) rm -rf $@ @$(call PRINT_LINK, $(AR) -rcs $@ $(OBJS)) +ifneq ($(USEMSVC), 1) +CCLD = $(CC) +else +CCLD = $(LD) +endif + $(EXENAME)-debug: $(DOBJS) $(LIBFILES) $(LIBTARGET)-debug.a flmain.do - @$(call PRINT_CC, $(CC) $(DEBUGFLAGS) $(DOBJS) flmain.do -o $(EXENAME)-debug $(LIBTARGET).a $(LIBS) $(OSLIBS)) + @$(call PRINT_LINK, $(CCLD) $(DEBUGFLAGS) $(DOBJS) flmain.do -o $(EXENAME)-debug $(LIBTARGET).a $(LIBS) $(OSLIBS)) ifndef CROSS_COMPILE +ifneq ($(USEMSVC), 1) $(call spawn,./$(EXENAME)-debug) unittest.lsp endif +endif $(EXENAME): $(OBJS) $(LIBFILES) $(LIBTARGET).a flmain.o - @$(call PRINT_CC, $(CC) $(SHIPFLAGS) $(OBJS) flmain.o $(LDFLAGS) -o $(EXENAME) $(LIBTARGET).a $(LIBS) $(OSLIBS)) + @$(call PRINT_LINK, $(CCLD) $(SHIPFLAGS) $(OBJS) flmain.o $(LDFLAGS) -o $(EXENAME) $(LIBTARGET).a $(LIBS) $(OSLIBS)) +ifneq ($(USEMSVC), 1) $(call spawn,./$(EXENAME)) unittest.lsp +endif clean: rm -f *.o diff --git a/ui/Makefile b/ui/Makefile index 79639a91d42f3..d63d3be1aed76 100644 --- a/ui/Makefile +++ b/ui/Makefile @@ -5,8 +5,10 @@ override CFLAGS += $(JCFLAGS) override CXXFLAGS += $(JCXXFLAGS) override CPPFLAGS += $(JCPPFLAGS) -FLAGS = -Wall -Wno-strict-aliasing -fno-omit-frame-pointer \ - -I$(JULIAHOME)/src -I$(JULIAHOME)/src/support -I$(build_includedir) +FLAGS = -I$(JULIAHOME)/src -I$(JULIAHOME)/src/support -I$(build_includedir) +ifneq ($(USEMSVC), 1) +FLAGS += -Wall -Wno-strict-aliasing -fno-omit-frame-pointer +endif DEBUGFLAGS += $(FLAGS) SHIPFLAGS += $(FLAGS) @@ -44,10 +46,16 @@ endif julia-release: $(build_bindir)/julia$(EXE) julia-debug: $(build_bindir)/julia-debug$(EXE) +ifneq ($(USEMSVC), 1) +CXXLD = $(CXX) +else +CXXLD = $(LD) +endif + $(build_bindir)/julia$(EXE): repl.o repl-basic.o - @$(call PRINT_LINK, $(CXX) $(LINK_FLAGS) $(SHIPFLAGS) $^ -o $@ -L$(build_private_libdir) -L$(build_libdir) -L$(build_shlibdir) -ljulia $(JLDFLAGS)) + @$(call PRINT_LINK, $(CXXLD) $(LINK_FLAGS) $(SHIPFLAGS) $^ -o $@ -L$(build_private_libdir) -L$(build_libdir) -L$(build_shlibdir) -ljulia $(JLDFLAGS)) $(build_bindir)/julia-debug$(EXE): repl.do repl-basic.do - @$(call PRINT_LINK, $(CXX) $(LINK_FLAGS) $(DEBUGFLAGS) $^ -o $@ -L$(build_private_libdir) -L$(build_libdir) -L$(build_shlibdir) -ljulia-debug $(JLDFLAGS)) + @$(call PRINT_LINK, $(CXXLD) $(LINK_FLAGS) $(DEBUGFLAGS) $^ -o $@ -L$(build_private_libdir) -L$(build_libdir) -L$(build_shlibdir) -ljulia-debug $(JLDFLAGS)) clean: | $(CLEAN_TARGETS) rm -f *.o *.do diff --git a/ui/repl.h b/ui/repl.h index bc5cbd059169b..7a5b1e111a03e 100644 --- a/ui/repl.h +++ b/ui/repl.h @@ -11,12 +11,14 @@ #include #include #include +#ifndef _MSC_VER #include +#include +#include +#endif #include #include #include -#include -#include #include #include "julia.h"