summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfigure74
-rw-r--r--qmake/Makefile.unix7
-rw-r--r--qmake/Makefile.unix.macos17
-rw-r--r--qmake/Makefile.unix.mingw27
-rw-r--r--qmake/Makefile.unix.unix11
-rw-r--r--qmake/Makefile.unix.win3219
-rw-r--r--tools/configure/configureapp.cpp57
7 files changed, 102 insertions, 110 deletions
diff --git a/configure b/configure
index 5a5f564abb..bc18e614d2 100755
--- a/configure
+++ b/configure
@@ -1631,8 +1631,6 @@ setBootstrapVariable()
echo "########################################################################" > "$mkfile"
echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
echo "########################################################################" >> "$mkfile"
- EXTRA_OBJS=
- EXTRA_SRCS=
EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS) \$(QMAKE_CXXFLAGS_CXX11) \$(QMAKE_CXXFLAGS_SPLIT_SECTIONS)"
EXTRA_LFLAGS="\$(QMAKE_LFLAGS) \$(QMAKE_LFLAGS_GCSECTIONS)"
@@ -1657,58 +1655,6 @@ setBootstrapVariable()
EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
fi
- case `basename "$PLATFORM"` in
- win32-g++*)
- EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DUNICODE"
- EXTRA_OBJS="qfilesystemengine_win.o \
- qfilesystemiterator_win.o \
- qfsfileengine_win.o \
- qlocale_win.o \
- qsettings_win.o \
- qsystemlibrary.o \
- registry.o"
- EXTRA_SRCS="\"\$(SOURCE_PATH)/src/corelib/corelib/io/qfilesystemengine_win.cpp\" \
- \"\$(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_win.cpp\" \
- \"\$(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp\" \
- \"\$(SOURCE_PATH)/src/corelib/io/qsettings_win.cpp\" \
- \"\$(SOURCE_PATH)/src/corelib/tools/qlocale_win.cpp\" \
- \"\$(SOURCE_PATH)/src/corelib/plugin/qsystemlibrary.cpp\" \
- \"\$(SOURCE_PATH)/tools/shared/windows/registry.cpp\""
- EXTRA_LFLAGS="$EXTRA_LFLAGS -static -s -lole32 -luuid -ladvapi32 -lkernel32"
- EXEEXT=".exe"
- ;;
- *)
- EXTRA_OBJS="qfilesystemengine_unix.o \
- qfilesystemiterator_unix.o \
- qfsfileengine_unix.o \
- qlocale_unix.o"
- EXTRA_SRCS="\"\$(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp\" \
- \"\$(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_unix.cpp\" \
- \"\$(SOURCE_PATH)/src/corelib/io/qfsfileengine_unix.cpp\" \
- \"\$(SOURCE_PATH)/src/corelib/tools/qlocale_unix.cpp\""
- EXEEXT=
- ;;
- esac
- if [ "$BUILD_ON_MAC" = "yes" ]; then
- echo "COCOA_LFLAGS =-framework Foundation -framework CoreServices" >>"$mkfile"
- echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
- echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
- EXTRA_LFLAGS="$EXTRA_LFLAGS \$(COCOA_LFLAGS)"
- EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
- EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
- EXTRA_OBJS="$EXTRA_OBJS \
- qsettings_mac.o \
- qcore_mac.o \
- qcore_mac_objc.o \
- qcore_foundation.o"
- EXTRA_SRCS="$EXTRA_SRCS \
- \"\$(SOURCE_PATH)/src/corelib/io/qsettings_mac.cpp\" \
- \"\$(SOURCE_PATH)/src/corelib/kernel/qcore_mac.cpp\" \
- \"\$(SOURCE_PATH)/src/corelib/kernel/qcore_mac_objc.mm\" \
- \"\$(SOURCE_PATH)/src/corelib/kernel/qcore_foundation.mm\""
- fi
-
- echo >>"$mkfile"
adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
@@ -1725,14 +1671,24 @@ setBootstrapVariable()
echo "QT_MAJOR_VERSION = $QT_MAJOR_VERSION" >> "$mkfile"
echo "QT_MINOR_VERSION = $QT_MINOR_VERSION" >> "$mkfile"
echo "QT_PATCH_VERSION = $QT_PATCH_VERSION" >> "$mkfile"
- echo "EXTRA_CXXFLAGS = $EXTRA_CXXFLAGS" >> "$mkfile"
- echo "QTOBJS =" $EXTRA_OBJS >> "$mkfile"
- echo "QTSRCS =" $EXTRA_SRCS >> "$mkfile"
- echo "LFLAGS = $EXTRA_LFLAGS" >> "$mkfile"
- echo "EXEEXT = $EXEEXT" >> "$mkfile"
+ echo "CONFIG_CXXFLAGS = $EXTRA_CXXFLAGS" >> "$mkfile"
+ echo "CONFIG_LFLAGS = $EXTRA_LFLAGS" >> "$mkfile"
echo "RM_F = rm -f" >> "$mkfile"
echo "RM_RF = rm -rf" >> "$mkfile"
+ case `basename "$PLATFORM"` in
+ win32-g++*)
+ cat "$in_mkfile.win32" >> "$mkfile"
+ ;;
+ *)
+ cat "$in_mkfile.unix" >> "$mkfile"
+ if [ "$BUILD_ON_MAC" = "yes" ]; then
+ cat "$in_mkfile.macos" >> "$mkfile"
+ fi
+ ;;
+ esac
+ echo >>"$mkfile"
+
if [ "$BUILD_ON_MAC" = "yes" ]; then
echo "EXTRA_CXXFLAGS += -MMD" >> "$mkfile"
cat "$in_mkfile" >> "$mkfile"
diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix
index 0ab2a1b3c6..808a6d8233 100644
--- a/qmake/Makefile.unix
+++ b/qmake/Makefile.unix
@@ -20,7 +20,7 @@ QOBJS=qtextcodec.o qutfcodec.o qstring.o qstring_compat.o qstringbuilder.o qtext
qvariant.o qvsnprintf.o qlocale.o qlocale_tools.o qlinkedlist.o qnumeric.o \
qcryptographichash.o qxmlstream.o qxmlutils.o qlogging.o \
qjson.o qjsondocument.o qjsonparser.o qjsonarray.o qjsonobject.o qjsonvalue.o \
- $(QTOBJS)
+ $(QTOBJS) $(QTOBJS2)
#all sources, used for the depend target
@@ -92,7 +92,7 @@ DEPEND_SRC = \
$(SOURCE_PATH)/src/corelib/json/qjsonarray.cpp \
$(SOURCE_PATH)/src/corelib/json/qjsonobject.cpp \
$(SOURCE_PATH)/src/corelib/json/qjsonvalue.cpp \
- $(QTSRCS)
+ $(QTSRCS) $(QTSRCS2)
CPPFLAGS = -g $(EXTRA_CPPFLAGS) \
-I$(QMKSRC) -I$(QMKLIBSRC) -I$(QMKSRC)/generators -I$(QMKSRC)/generators/unix -I$(QMKSRC)/generators/win32 \
@@ -106,7 +106,8 @@ CPPFLAGS = -g $(EXTRA_CPPFLAGS) \
-DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL \
-DQT_NO_FOREACH
-CXXFLAGS = $(EXTRA_CXXFLAGS) $(CPPFLAGS)
+CXXFLAGS = $(EXTRA_CXXFLAGS) $(CONFIG_CXXFLAGS) $(CPPFLAGS)
+LFLAGS = $(EXTRA_LFLAGS) $(CONFIG_LFLAGS)
first all: $(BUILD_PATH)/bin/qmake$(EXEEXT)
qmake: $(BUILD_PATH)/bin/qmake$(EXEEXT)
diff --git a/qmake/Makefile.unix.macos b/qmake/Makefile.unix.macos
new file mode 100644
index 0000000000..06b875a84a
--- /dev/null
+++ b/qmake/Makefile.unix.macos
@@ -0,0 +1,17 @@
+COCOA_LFLAGS = -framework Foundation -framework CoreServices
+CARBON_LFLAGS = -framework ApplicationServices
+CARBON_CFLAGS = -fconstant-cfstrings
+
+EXTRA_CXXFLAGS = $(CARBON_CFLAGS)
+EXTRA_LFLAGS = $(COCOA_LFLAGS) $(CARBON_LFLAGS)
+
+QTOBJS2 = \
+ qsettings_mac.o \
+ qcore_mac.o \
+ qcore_mac_objc.o \
+ qcore_foundation.o
+QTSRCS2 = \
+ $(SOURCE_PATH)/src/corelib/io/qsettings_mac.cpp \
+ $(SOURCE_PATH)/src/corelib/kernel/qcore_mac.cpp \
+ $(SOURCE_PATH)/src/corelib/kernel/qcore_mac_objc.mm \
+ $(SOURCE_PATH)/src/corelib/kernel/qcore_foundation.mm
diff --git a/qmake/Makefile.unix.mingw b/qmake/Makefile.unix.mingw
new file mode 100644
index 0000000000..2c52c07dca
--- /dev/null
+++ b/qmake/Makefile.unix.mingw
@@ -0,0 +1,27 @@
+# SHELL is the full path of sh.exe, unless
+# 1) it is found in the current directory
+# 2) it is not found at all
+# 3) it is overridden on the command line with an existing file
+# ... otherwise it is always sh.exe. Specifically, SHELL from the
+# environment has no effect.
+#
+# This check will fail if SHELL is explicitly set to a not
+# sh-compatible shell. This is not a problem, because configure.bat
+# will not do that.
+ifeq ($(SHELL), sh.exe)
+ ifeq ($(wildcard $(CURDIR)/sh.exe), )
+ SH = 0
+ else
+ SH = 1
+ endif
+else
+ SH = 1
+endif
+
+ifeq ($(SH), 1)
+ RM_F = rm -f
+ RM_RF = rm -rf
+else
+ RM_F = del /f
+ RM_RF = rmdir /s /q
+endif
diff --git a/qmake/Makefile.unix.unix b/qmake/Makefile.unix.unix
new file mode 100644
index 0000000000..63eba4f5a5
--- /dev/null
+++ b/qmake/Makefile.unix.unix
@@ -0,0 +1,11 @@
+EXEEXT =
+QTOBJS = \
+ qfilesystemengine_unix.o \
+ qfilesystemiterator_unix.o \
+ qfsfileengine_unix.o \
+ qlocale_unix.o
+QTSRCS = \
+ $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp \
+ $(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_unix.cpp \
+ $(SOURCE_PATH)/src/corelib/io/qfsfileengine_unix.cpp \
+ $(SOURCE_PATH)/src/corelib/tools/qlocale_unix.cpp
diff --git a/qmake/Makefile.unix.win32 b/qmake/Makefile.unix.win32
new file mode 100644
index 0000000000..be7245a370
--- /dev/null
+++ b/qmake/Makefile.unix.win32
@@ -0,0 +1,19 @@
+EXEEXT = .exe
+EXTRA_CXXFLAGS = -DUNICODE
+EXTRA_LFLAGS = -static -s -lole32 -luuid -ladvapi32 -lkernel32
+QTOBJS = \
+ qfilesystemengine_win.o \
+ qfilesystemiterator_win.o \
+ qfsfileengine_win.o \
+ qlocale_win.o \
+ qsettings_win.o \
+ qsystemlibrary.o \
+ registry.o
+QTSRCS = \
+ $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_win.cpp \
+ $(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_win.cpp \
+ $(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp \
+ $(SOURCE_PATH)/src/corelib/io/qsettings_win.cpp \
+ $(SOURCE_PATH)/src/corelib/tools/qlocale_win.cpp \
+ $(SOURCE_PATH)/src/corelib/plugin/qsystemlibrary.cpp \
+ $(SOURCE_PATH)/tools/shared/windows/registry.cpp
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 870bf3d368..f7baf4086b 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -866,54 +866,15 @@ void Configure::buildQmake()
<< "QT_PATCH_VERSION = " << dictionary["VERSION_PATCH"] << endl;
if (dictionary[ "QMAKESPEC" ].startsWith("win32-g++")) {
stream << "QMAKESPEC = $(SOURCE_PATH)\\mkspecs\\" << dictionary[ "QMAKESPEC" ] << endl
- << "EXTRA_CXXFLAGS = -std=c++11 -DUNICODE -ffunction-sections" << endl
- << "EXTRA_LFLAGS = -Wl,--gc-sections" << endl
- << "QTOBJS = qfilesystemengine_win.o \\" << endl
- << " qfilesystemiterator_win.o \\" << endl
- << " qfsfileengine_win.o \\" << endl
- << " qlocale_win.o \\" << endl
- << " qsettings_win.o \\" << endl
- << " qsystemlibrary.o \\" << endl
- << " registry.o" << endl
- << "QTSRCS=\"$(SOURCE_PATH)/src/corelib/io/qfilesystemengine_win.cpp\" \\" << endl
- << " \"$(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_win.cpp\" \\" << endl
- << " \"$(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp\" \\" << endl
- << " \"$(SOURCE_PATH)/src/corelib/io/qsettings_win.cpp\" \\" << endl
- << " \"$(SOURCE_PATH)/src/corelib/tools/qlocale_win.cpp\" \\" << endl\
- << " \"$(SOURCE_PATH)/src/corelib/plugin/qsystemlibrary.cpp\" \\" << endl
- << " \"$(SOURCE_PATH)/tools/shared/windows/registry.cpp\"" << endl
- << "EXEEXT=.exe" << endl
- << "LFLAGS=-static -s -lole32 -luuid -ladvapi32 -lkernel32" << endl;
- /*
- ** SHELL is the full path of sh.exe, unless
- ** 1) it is found in the current directory
- ** 2) it is not found at all
- ** 3) it is overridden on the command line with an existing file
- ** ... otherwise it is always sh.exe. Specifically, SHELL from the
- ** environment has no effect.
- **
- ** This check will fail if SHELL is explicitly set to a not
- ** sh-compatible shell. This is not a problem, because configure.bat
- ** will not do that.
- */
- stream << "ifeq ($(SHELL), sh.exe)" << endl
- << " ifeq ($(wildcard $(CURDIR)/sh.exe), )" << endl
- << " SH = 0" << endl
- << " else" << endl
- << " SH = 1" << endl
- << " endif" << endl
- << "else" << endl
- << " SH = 1" << endl
- << "endif" << endl
- << "\n"
- << "ifeq ($(SH), 1)" << endl
- << " RM_F = rm -f" << endl
- << " RM_RF = rm -rf" << endl
- << "else" << endl
- << " RM_F = del /f" << endl
- << " RM_RF = rmdir /s /q" << endl
- << "endif" << endl;
- stream << "\n\n";
+ << "CONFIG_CXXFLAGS = -std=c++11 -ffunction-sections" << endl
+ << "CONFIG_LFLAGS = -Wl,--gc-sections" << endl;
+
+ QFile in(sourcePath + "/qmake/Makefile.unix.win32");
+ if (in.open(QFile::ReadOnly | QFile::Text))
+ stream << in.readAll();
+ QFile in2(sourcePath + "/qmake/Makefile.unix.mingw");
+ if (in2.open(QFile::ReadOnly | QFile::Text))
+ stream << in2.readAll();
} else {
stream << "QMAKESPEC = " << dictionary["QMAKESPEC"] << endl;
}