On Tue, 2011-03-22 at 17:10 +0100, Bjoern Michaelsen wrote:
Yes, it does. One might even consider to put even the X86 and X86_64
specifics in an own file
Yeah, attached is what I propose to push if there's no objections.
include linux-ARCH.mk and linux-ARCH sets its specific magic and
includes linux.mk for generic linux stuff which includes unxgcc.mk for
generic gcc stuff. Which allows the gcc-using BSD etc guys to reuse the
unxgcc.mk and move what bits turn out to be linux specific up to
linux.mk
Appears to all work ok here for X86_64/X86/PPC/IA64.
C.
From f3796c17dcc7cf64afb26bcde426225f940f8500 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 24 Mar 2011 15:01:49 +0000
Subject: [PATCH 1/2] regain support for arm, ppc, s390x etc.
---
solenv/gbuild/gbuild.mk | 24 +-
solenv/gbuild/platform/dragonfly-INTEL.mk | 37 +++
solenv/gbuild/platform/dragonfly-X86_64.mk | 37 +++
solenv/gbuild/platform/linux-ARM.mk | 39 +++
solenv/gbuild/platform/linux-AXP.mk | 40 +++
solenv/gbuild/platform/linux-GODSON.mk | 37 +++
solenv/gbuild/platform/linux-HPPA.mk | 37 +++
solenv/gbuild/platform/linux-IA64.mk | 37 +++
solenv/gbuild/platform/linux-INTEL.mk | 37 +++
solenv/gbuild/platform/linux-M68K.mk | 39 +++
solenv/gbuild/platform/linux-POWERPC.mk | 39 +++
solenv/gbuild/platform/linux-POWERPC64.mk | 37 +++
solenv/gbuild/platform/linux-S390.mk | 39 +++
solenv/gbuild/platform/linux-S390X.mk | 35 +++
solenv/gbuild/platform/linux-SPARC.mk | 37 +++
solenv/gbuild/platform/linux-X86_64.mk | 37 +++
solenv/gbuild/platform/linux.mk | 391 +---------------------------
solenv/gbuild/platform/unxgcc.mk | 403 ++++++++++++++++++++++++++++
18 files changed, 977 insertions(+), 405 deletions(-)
create mode 100755 solenv/gbuild/platform/dragonfly-INTEL.mk
create mode 100755 solenv/gbuild/platform/dragonfly-X86_64.mk
create mode 100755 solenv/gbuild/platform/linux-ARM.mk
create mode 100755 solenv/gbuild/platform/linux-AXP.mk
create mode 100755 solenv/gbuild/platform/linux-GODSON.mk
create mode 100755 solenv/gbuild/platform/linux-HPPA.mk
create mode 100755 solenv/gbuild/platform/linux-IA64.mk
create mode 100755 solenv/gbuild/platform/linux-INTEL.mk
create mode 100755 solenv/gbuild/platform/linux-M68K.mk
create mode 100755 solenv/gbuild/platform/linux-POWERPC.mk
create mode 100755 solenv/gbuild/platform/linux-POWERPC64.mk
create mode 100755 solenv/gbuild/platform/linux-S390.mk
create mode 100755 solenv/gbuild/platform/linux-S390X.mk
create mode 100755 solenv/gbuild/platform/linux-SPARC.mk
create mode 100755 solenv/gbuild/platform/linux-X86_64.mk
create mode 100755 solenv/gbuild/platform/unxgcc.mk
diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
index 0c9896e..9a2e5e0 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -143,29 +143,23 @@ $(eval $(call gb_Helper_init_registries))
$(eval $(call gb_Helper_add_repositories,$(gb_REPOS)))
$(eval $(call gb_Helper_collect_libtargets))
-# Make has no support for 'or' clauses in conditionals,
-# we use a filter expression instead.
-ifneq (,$(filter LINUX DRAGONFLY, $(OS)))
-include $(GBUILDDIR)/platform/linux.mk
-else
-ifeq ($(OS),WNT)
+ifeq ($(OS),LINUX)
+include $(GBUILDDIR)/platform/linux-$(CPUNAME).mk
+else ifeq ($(OS),DRAGONFLY)
+include $(GBUILDDIR)/platform/dragonfly-$(CPUNAME).mk
+else ifeq ($(OS),MACOSX)
+include $(GBUILDDIR)/platform/macosx.mk
+else ifeq ($(OS),SOLARIS)
+include $(GBUILDDIR)/platform/solaris.mk
+else ifeq ($(OS),WNT)
ifneq ($(USE_MINGW),)
include $(GBUILDDIR)/platform/winmingw.mk
else
include $(GBUILDDIR)/platform/windows.mk
endif
else
-ifeq ($(OS),SOLARIS)
-include $(GBUILDDIR)/platform/solaris.mk
-else
-ifeq ($(OS),MACOSX)
-include $(GBUILDDIR)/platform/macosx.mk
-else
$(eval $(call gb_Output_error,Unsupported OS: $(OS)))
endif
-endif
-endif
-endif
include $(GBUILDDIR)/Tempfile.mk
diff --git a/solenv/gbuild/platform/dragonfly-INTEL.mk b/solenv/gbuild/platform/dragonfly-INTEL.mk
new file mode 100755
index 0000000..91c90a5
--- /dev/null
+++ b/solenv/gbuild/platform/dragonfly-INTEL.mk
@@ -0,0 +1,37 @@
+#*************************************************************************
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.)
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): Caolán McNamara <caolanm@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+#
+#*************************************************************************
+
+#please make generic modifications to unxgcc.mk or linux.mk
+gb_CPUDEFS := -DX86
+gb_Library_DLLPOSTFIX := df
+gb_COMPILERDEFAULTOPTFLAGS := -Os
+
+include $(GBUILDDIR)/platform/linux.mk
+
+# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/dragonfly-X86_64.mk b/solenv/gbuild/platform/dragonfly-X86_64.mk
new file mode 100755
index 0000000..498eaa8
--- /dev/null
+++ b/solenv/gbuild/platform/dragonfly-X86_64.mk
@@ -0,0 +1,37 @@
+#*************************************************************************
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.)
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): Caolán McNamara <caolanm@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+#
+#*************************************************************************
+
+#please make generic modifications to unxgcc.mk or linux.mk
+gb_CPUDEFS := -D$(CPUNAME)
+gb_Library_DLLPOSTFIX := df
+gb_COMPILERDEFAULTOPTFLAGS := -O2
+
+include $(GBUILDDIR)/platform/linux.mk
+
+# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/linux-ARM.mk b/solenv/gbuild/platform/linux-ARM.mk
new file mode 100755
index 0000000..0bc41cb
--- /dev/null
+++ b/solenv/gbuild/platform/linux-ARM.mk
@@ -0,0 +1,39 @@
+#*************************************************************************
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.)
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): Caolán McNamara <caolanm@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+#
+#*************************************************************************
+
+#please make generic modifications to unxgcc.mk or linux.mk
+gb_CPUDEFS += -DARM32
+gb_Library_DLLPOSTFIX := lr
+gb_COMPILERDEFAULTOPTFLAGS := -Os
+gb_CXXFLAGS += -fno-omit-frame-pointer
+gb_CFLAGS += -fno-omit-frame-pointer
+
+include $(GBUILDDIR)/platform/unxgcc.mk
+
+# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/linux-AXP.mk b/solenv/gbuild/platform/linux-AXP.mk
new file mode 100755
index 0000000..5fc7c67
--- /dev/null
+++ b/solenv/gbuild/platform/linux-AXP.mk
@@ -0,0 +1,40 @@
+#*************************************************************************
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.)
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): Caolán McNamara <caolanm@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+#
+#*************************************************************************
+
+#please make generic modifications to unxgcc.mk or linux.mk
+gb_CPUDEFS += -D$(CPUNAME)
+gb_Library_DLLPOSTFIX := ll
+gb_COMPILERDEFAULTOPTFLAGS := -Os
+gb_CXXFLAGS += -fsigned-char -fno-omit-frame-pointer
+gb_CFLAGS += -fsigned-char -fno-omit-frame-pointer
+gb_LinkTarget_LDFLAGS += -Wl,--no-relax
+
+include $(GBUILDDIR)/platform/unxgcc.mk
+
+# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/linux-GODSON.mk b/solenv/gbuild/platform/linux-GODSON.mk
new file mode 100755
index 0000000..0fe6e8c
--- /dev/null
+++ b/solenv/gbuild/platform/linux-GODSON.mk
@@ -0,0 +1,37 @@
+#*************************************************************************
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.)
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): Caolán McNamara <caolanm@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+#
+#*************************************************************************
+
+#please make generic modifications to unxgcc.mk or linux.mk
+gb_CPUDEFS += -DMIPS
+gb_Library_DLLPOSTFIX := lm
+gb_COMPILERDEFAULTOPTFLAGS := -Os
+
+include $(GBUILDDIR)/platform/unxgcc.mk
+
+# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/linux-HPPA.mk b/solenv/gbuild/platform/linux-HPPA.mk
new file mode 100755
index 0000000..13d83ab
--- /dev/null
+++ b/solenv/gbuild/platform/linux-HPPA.mk
@@ -0,0 +1,37 @@
+#*************************************************************************
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.)
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): Caolán McNamara <caolanm@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+#
+#*************************************************************************
+
+#please make generic modifications to unxgcc.mk or linux.mk
+gb_CPUDEFS += -D$(CPUNAME)
+gb_Library_DLLPOSTFIX := lh
+gb_COMPILERDEFAULTOPTFLAGS := -O2
+
+include $(GBUILDDIR)/platform/unxgcc.mk
+
+# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/linux-IA64.mk b/solenv/gbuild/platform/linux-IA64.mk
new file mode 100755
index 0000000..0aaf292
--- /dev/null
+++ b/solenv/gbuild/platform/linux-IA64.mk
@@ -0,0 +1,37 @@
+#*************************************************************************
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.)
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): Caolán McNamara <caolanm@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+#
+#*************************************************************************
+
+#please make generic modifications to unxgcc.mk or linux.mk
+gb_CPUDEFS := -D$(CPUNAME)
+gb_Library_DLLPOSTFIX := la
+gb_COMPILERDEFAULTOPTFLAGS := -O2
+
+include $(GBUILDDIR)/platform/linux.mk
+
+# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/linux-INTEL.mk b/solenv/gbuild/platform/linux-INTEL.mk
new file mode 100755
index 0000000..5bff1cb
--- /dev/null
+++ b/solenv/gbuild/platform/linux-INTEL.mk
@@ -0,0 +1,37 @@
+#*************************************************************************
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.)
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): Caolán McNamara <caolanm@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+#
+#*************************************************************************
+
+#please make generic modifications to unxgcc.mk or linux.mk
+gb_CPUDEFS := -DX86
+gb_Library_DLLPOSTFIX := li
+gb_COMPILERDEFAULTOPTFLAGS := -Os
+
+include $(GBUILDDIR)/platform/linux.mk
+
+# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/linux-M68K.mk b/solenv/gbuild/platform/linux-M68K.mk
new file mode 100755
index 0000000..40c100c
--- /dev/null
+++ b/solenv/gbuild/platform/linux-M68K.mk
@@ -0,0 +1,39 @@
+#*************************************************************************
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.)
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): Caolán McNamara <caolanm@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+#
+#*************************************************************************
+
+#please make generic modifications to unxgcc.mk or linux.mk
+gb_CPUDEFS += -D$(CPUNAME)
+gb_Library_DLLPOSTFIX := lm
+gb_COMPILERDEFAULTOPTFLAGS := -Os
+gb_CXXFLAGS += -fsigned-char -fno-omit-frame-pointer
+gb_CFLAGS += -fsigned-char -fno-omit-frame-pointer
+
+include $(GBUILDDIR)/platform/unxgcc.mk
+
+# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/linux-POWERPC.mk b/solenv/gbuild/platform/linux-POWERPC.mk
new file mode 100755
index 0000000..609caff
--- /dev/null
+++ b/solenv/gbuild/platform/linux-POWERPC.mk
@@ -0,0 +1,39 @@
+#*************************************************************************
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.)
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): Caolán McNamara <caolanm@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+#
+#*************************************************************************
+
+#please make generic modifications to unxgcc.mk or linux.mk
+gb_CPUDEFS += -DPPC
+gb_Library_DLLPOSTFIX := lp
+gb_COMPILERDEFAULTOPTFLAGS := -O2
+gb_CXXFLAGS += -fsigned-char
+gb_CFLAGS += -fsigned-char
+
+include $(GBUILDDIR)/platform/unxgcc.mk
+
+# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/linux-POWERPC64.mk b/solenv/gbuild/platform/linux-POWERPC64.mk
new file mode 100755
index 0000000..b58010f
--- /dev/null
+++ b/solenv/gbuild/platform/linux-POWERPC64.mk
@@ -0,0 +1,37 @@
+#*************************************************************************
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.)
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): Caolán McNamara <caolanm@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+#
+#*************************************************************************
+
+#please make generic modifications to unxgcc.mk or linux.mk
+gb_CPUDEFS := -D$(CPUNAME)
+gb_CXXFLAGS += -mminimal-toc
+gb_CFLAGS += -fsigned-char
+
+include $(GBUILDDIR)/platform/linux-POWERPC.mk
+
+# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/linux-S390.mk b/solenv/gbuild/platform/linux-S390.mk
new file mode 100755
index 0000000..410038e
--- /dev/null
+++ b/solenv/gbuild/platform/linux-S390.mk
@@ -0,0 +1,39 @@
+#*************************************************************************
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.)
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): Caolán McNamara <caolanm@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+#
+#*************************************************************************
+
+#please make generic modifications to unxgcc.mk or linux.mk
+gb_CPUDEFS += -D$(CPUNAME)
+gb_Library_DLLPOSTFIX := l3
+gb_COMPILERDEFAULTOPTFLAGS := -O2
+gb_CXXFLAGS += -fsigned-char -fno-omit-frame-pointer
+gb_CFLAGS += -fsigned-char -fno-omit-frame-pointer
+
+include $(GBUILDDIR)/platform/linux.mk
+
+# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/linux-S390X.mk b/solenv/gbuild/platform/linux-S390X.mk
new file mode 100755
index 0000000..a27c2ac
--- /dev/null
+++ b/solenv/gbuild/platform/linux-S390X.mk
@@ -0,0 +1,35 @@
+#*************************************************************************
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.)
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): Caolán McNamara <caolanm@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+#
+#*************************************************************************
+
+#please make generic modifications to unxgcc.mk or linux.mk
+gb_CPUDEFS := -D$(CPUNAME)
+
+include $(GBUILDDIR)/platform/linux-S390.mk
+
+# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/linux-SPARC.mk b/solenv/gbuild/platform/linux-SPARC.mk
new file mode 100755
index 0000000..88343d6
--- /dev/null
+++ b/solenv/gbuild/platform/linux-SPARC.mk
@@ -0,0 +1,37 @@
+#*************************************************************************
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.)
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): Caolán McNamara <caolanm@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+#
+#*************************************************************************
+
+#please make generic modifications to unxgcc.mk or linux.mk
+gb_CPUDEFS := -D$(CPUNAME)
+gb_Library_DLLPOSTFIX := ls
+gb_COMPILERDEFAULTOPTFLAGS := -Os
+
+include $(GBUILDDIR)/platform/linux.mk
+
+# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/linux-X86_64.mk b/solenv/gbuild/platform/linux-X86_64.mk
new file mode 100755
index 0000000..654ced4
--- /dev/null
+++ b/solenv/gbuild/platform/linux-X86_64.mk
@@ -0,0 +1,37 @@
+#*************************************************************************
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.)
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s): Caolán McNamara <caolanm@redhat.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+#
+#*************************************************************************
+
+#please make generic modifications to unxgcc.mk or linux.mk
+gb_CPUDEFS := -D$(CPUNAME)
+gb_Library_DLLPOSTFIX := lx
+gb_COMPILERDEFAULTOPTFLAGS := -O2
+
+include $(GBUILDDIR)/platform/linux.mk
+
+# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/linux.mk b/solenv/gbuild/platform/linux.mk
index 3ba9a21..421166a 100755
--- a/solenv/gbuild/platform/linux.mk
+++ b/solenv/gbuild/platform/linux.mk
@@ -25,395 +25,6 @@
#
#*************************************************************************
-GUI := UNX
-COM := GCC
-
-gb_MKTEMP := mktemp -t gbuild.XXXXXX
-
-gb_CC := gcc
-gb_CXX := g++
-gb_GCCP := gcc
-gb_AR := ar
-gb_AWK := awk
-gb_CLASSPATHSEP := :
-
-# normalize setsolar and configure env.
-ifeq ($(CPU),X)
-CPUNAME := X86_64
-endif
-
-# use CC/CXX if they are nondefaults
-ifneq ($(origin CC),default)
-gb_CC := $(CC)
-gb_GCCP := $(CC)
-endif
-ifneq ($(origin CXX),default)
-gb_CXX := $(CXX)
-endif
-
-gb_OSDEFS := \
- -D$(OS) \
- -D_PTHREADS \
- -DUNIX \
- -DUNX \
- $(PTHREAD_CFLAGS) \
-
-ifeq ($(GXX_INCLUDE_PATH),)
-GXX_INCLUDE_PATH=$(COMPATH)/include/c++/$(shell gcc -dumpversion)
-endif
-
-gb_COMPILERDEFS := \
- -D$(COM) \
- -DHAVE_GCC_VISIBILITY_FEATURE \
- -DCPPU_ENV=gcc3 \
- -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \
-
-ifeq ($(CPUNAME),X86_64)
-gb_CPUDEFS := -D$(CPUNAME)
-else
-gb_CPUDEFS := -DX86
-endif
-
-gb_CFLAGS := \
- -Wall \
- -Wendif-labels \
- -Wextra \
- -Wshadow \
- -fPIC \
- -fmessage-length=0 \
- -fno-common \
- -fno-strict-aliasing \
- -fvisibility=hidden \
- -pipe \
-
-gb_CXXFLAGS := \
- -Wall \
- -Wendif-labels \
- -Wextra \
- -Wno-ctor-dtor-privacy \
- -Wno-non-virtual-dtor \
- -Wshadow \
- -fPIC \
- -fmessage-length=0 \
- -fno-common \
- -fno-strict-aliasing \
- -fno-use-cxa-atexit \
- -fvisibility-inlines-hidden \
- -fvisibility=hidden \
- -pipe \
-
-ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE)
-gb_CFLAGS_WERROR := -Werror
-gb_CXXFLAGS_WERROR := -Werror
-endif
-
-ifneq ($(strip $(SYSBASE)),)
-gb_CXXFLAGS += --sysroot=$(SYSBASE)
-gb_CFLAGS += --sysroot=$(SYSBASE)
-endif
-gb_LinkTarget_EXCEPTIONFLAGS := \
- -DEXCEPTIONS_ON \
- -fexceptions \
- -fno-enforce-eh-specs \
-
-gb_LinkTarget_NOEXCEPTIONFLAGS := \
- -DEXCEPTIONS_OFF \
- -fno-exceptions \
-
-gb_LinkTarget_LDFLAGS := \
- -Wl,--sysroot=$(SYSBASE) \
- -Wl,-rpath-link,$(SYSBASE)/lib:$(SYSBASE)/usr/lib \
- -Wl,-z,combreloc \
- -Wl,-z,defs \
- $(subst -L../lib , ,$(SOLARLIB)) \
-
-ifeq ($(HAVE_LD_HASH_STYLE),TRUE)
-gb_LinkTarget_LDFLAGS += \
- -Wl,--hash-style=both \
-
-endif
-
-ifneq ($(HAVE_LD_BSYMBOLIC_FUNCTIONS),)
-gb_LinkTarget_LDFLAGS += \
- -Wl,--dynamic-list-cpp-new \
- -Wl,--dynamic-list-cpp-typeinfo \
- -Wl,-Bsymbolic-functions \
-
-endif
-
-ifneq ($(gb_SYMBOL),$(true))
-gb_LinkTarget_LDFLAGS += \
- -Wl,--strip-all \
-
-endif
-
-ifeq ($(gb_DEBUGLEVEL),2)
-gb_COMPILEROPTFLAGS := -O0
-else
-gb_COMPILEROPTFLAGS := -Os
-endif
-
-gb_COMPILERNOOPTFLAGS := -O0
-
-# Helper class
-
-gb_Helper_abbreviate_dirs_native = $(gb_Helper_abbreviate_dirs)
-
-gb_Helper_set_ld_path := LD_LIBRARY_PATH=$(OUTDIR)/lib
-
-# convert parametters filesystem root to native notation
-# does some real work only on windows, make sure not to
-# break the dummy implementations on unx*
-define gb_Helper_convert_native
-$(1)
-endef
-
-# CObject class
-
-define gb_CObject__command
-$(call gb_Output_announce,$(2),$(true),C ,3)
-$(call gb_Helper_abbreviate_dirs,\
- mkdir -p $(dir $(1)) && \
- mkdir -p $(dir $(call gb_CObject_get_dep_target,$(2))) && \
- $(gb_CC) \
- $(DEFS) $(CFLAGS) \
- -c $(3) \
- -o $(1) \
- -MMD -MT $(call gb_CObject_get_target,$(2)) \
- -MF $(call gb_CObject_get_dep_target,$(2)) \
- -I$(dir $(3)) \
- $(INCLUDE))
-endef
-
-
-# CxxObject class
-
-define gb_CxxObject__command
-$(call gb_Output_announce,$(2),$(true),CXX,3)
-$(call gb_Helper_abbreviate_dirs,\
- mkdir -p $(dir $(1)) && \
- mkdir -p $(dir $(call gb_CxxObject_get_dep_target,$(2))) && \
- $(gb_CXX) \
- $(DEFS) $(CXXFLAGS) \
- -c $(3) \
- -o $(1) \
- -MMD -MT $(call gb_CxxObject_get_target,$(2)) \
- -MF $(call gb_CxxObject_get_dep_target,$(2)) \
- -I$(dir $(3)) \
- $(INCLUDE_STL) $(INCLUDE))
-endef
-
-
-# LinkTarget class
-
-define gb_LinkTarget__get_rpath_for_layer
-$(patsubst $(1):%,%,$(filter $(1):%,$(gb_LinkTarget__RPATHS)))
-endef
-
-gb_LinkTarget__RPATHS := \
- URELIB:\dORIGIN \
- UREBIN:\dORIGIN/../lib:\dORIGIN \
- OOO:\dORIGIN:\dORIGIN/../ure-link/lib \
- BRAND:\dORIGIN:\dORIGIN/../basis-link/program:\dORIGIN/../basis-link/ure-link/lib \
- SDKBIN:\dORIGIN/../../ure-link/lib \
- NONEBIN:\dORIGIN/../lib:\dORIGIN \
-
-gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS)
-gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR)
-
-ifeq ($(gb_DEBUGLEVEL),2)
-gb_LinkTarget_CXXFLAGS += -finline-limit=0 -fno-inline -fno-default-inline
-gb_LinkTarget_CFLAGS += -finline-limit=0 -fno-inline -fno-default-inline
-
-endif
-
-ifeq ($(gb_SYMBOL),$(true))
-gb_LinkTarget_CXXFLAGS += -ggdb3
-gb_LinkTarget_CFLAGS += -ggdb3
-endif
-
-gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC)))
-gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC)))
-
-define gb_LinkTarget__command_dynamiclink
-$(call gb_Helper_abbreviate_dirs,\
- mkdir -p $(dir $(1)) && \
- $(gb_CXX) \
- $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
- $(subst \d,$$,$(RPATH)) $(LDFLAGS) \
- $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
- $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
- $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
- -Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call
gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \
- $(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call
gb_Library_get_filename,$(lib)))) \
- -o $(1))
-endef
-
-define gb_LinkTarget__command_staticlink
-$(call gb_Helper_abbreviate_dirs,\
- mkdir -p $(dir $(1)) && \
- $(gb_AR) -rsu $(1) \
- $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
- $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
- $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
- 2> /dev/null)
-endef
-
-define gb_LinkTarget__command
-$(call gb_Output_announce,$(2),$(true),LNK,4)
-$(if $(filter Library CppunitTest Executable,$(TARGETTYPE)),$(call
gb_LinkTarget__command_dynamiclink,$(1)))
-$(if $(filter StaticLibrary,$(TARGETTYPE)),$(call gb_LinkTarget__command_staticlink,$(1)))
-endef
-
-
-# Library class
-
-gb_Library_DEFS :=
-gb_Library_TARGETTYPEFLAGS := -shared -Wl,-z,noexecstack
-gb_Library_SYSPRE := lib
-gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_
-gb_Library_PLAINEXT := .so
-gb_Library_RTEXT := gcc3$(gb_Library_PLAINEXT)
-
-ifeq ($(CPUNAME),X86_64)
-gb_Library_OOOEXT := lx$(gb_Library_PLAINEXT)
-gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT)
-else
-gb_Library_OOOEXT := li$(gb_Library_PLAINEXT)
-gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT)
-endif
-
-gb_Library_PLAINLIBS_NONE += \
- dl \
- jpeg \
- m \
- pthread \
- X11 \
- z
-
-gb_Library_FILENAMES := \
- $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \
- $(foreach
lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \
- $(foreach
lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \
- $(foreach
lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \
- $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \
- $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT))
\
- $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \
- $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \
- $(foreach
lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \
-
-
-gb_Library_LAYER := \
- $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \
- $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):URELIB) \
- $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \
- $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \
- $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):URELIB) \
- $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):URELIB) \
- $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \
- $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):URELIB) \
-
-define gb_Library_get_rpath
-'-Wl,-rpath,$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Library_get_layer,$(1)))' \
-'-Wl,-rpath-link,$(gb_Library_OUTDIRLOCATION)'
-endef
-
-define gb_Library_Library_platform
-$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Library_get_rpath,$(1))
-
-endef
-
-
-# StaticLibrary class
-
-gb_StaticLibrary_DEFS :=
-gb_StaticLibrary_SYSPRE := lib
-gb_StaticLibrary_PLAINEXT := .a
-gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT)
-
-gb_StaticLibrary_FILENAMES := \
- $(foreach
lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT))
\
- $(foreach
lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT))
\
-
-gb_StaticLibrary_StaticLibrary_platform =
-
-
-# Executable class
-
-gb_Executable_EXT :=
-
-gb_Executable_LAYER := \
- $(foreach exe,$(gb_Executable_UREBIN),$(exe):UREBIN) \
- $(foreach exe,$(gb_Executable_SDK),$(exe):SDKBIN) \
- $(foreach exe,$(gb_Executable_OOO),$(exe):OOO) \
- $(foreach exe,$(gb_Executable_BRAND),$(exe):BRAND) \
- $(foreach exe,$(gb_Executable_NONE),$(exe):NONEBIN) \
-
-
-define gb_Executable_get_rpath
-'-Wl,-rpath,$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Executable_get_layer,$(1)))' \
--Wl,-rpath-link,$(gb_Library_OUTDIRLOCATION)
-endef
-
-define gb_Executable_Executable_platform
-$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Executable_get_rpath,$(1))
-
-endef
-
-
-# CppunitTest class
-
-gb_CppunitTest_CPPTESTPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib
-gb_CppunitTest_SYSPRE := libtest_
-gb_CppunitTest_EXT := .so
-gb_CppunitTest_get_filename = $(gb_CppunitTest_SYSPRE)$(1)$(gb_CppunitTest_EXT)
-gb_CppunitTest_get_libfilename = $(gb_CppunitTest_get_filename)
-
-define gb_CppunitTest_CppunitTest_platform
-$(call gb_LinkTarget_get_target,$(2)) : RPATH :=
-
-endef
-
-# JunitTest class
-
-define gb_JunitTest_JunitTest_platform
-$(call gb_JunitTest_get_target,$(1)) : DEFS := \
-
-Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:$(OUTDIR)/installation/opt/openoffice.org3/program/soffice}"
\
- -Dorg.openoffice.test.arg.env=LD_LIBRARY_PATH \
- -Dorg.openoffice.test.arg.user=file://$(call gb_JunitTest_get_userdir,$(1)) \
-
-endef
-
-# SdiTarget class
-
-gb_SdiTarget_SVIDLPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib
-
-# SrsPartMergeTarget
-
-gb_SrsPartMergeTarget_TRANSEXPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib
-
-# SrsPartTarget class
-
-gb_SrsPartTarget_RSCTARGET := $(OUTDIR)/bin/rsc
-gb_SrsPartTarget_RSCCOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib SOLARBINDIR=$(OUTDIR)/bin
$(gb_SrsPartTarget_RSCTARGET)
-
-define gb_SrsPartTarget__command_dep
-$(call gb_Helper_abbreviate_dirs,\
- $(gb_GCCP) \
- -MM -MT $(call gb_SrsPartTarget_get_target,$(1)) \
- $(INCLUDE) \
- $(DEFS) \
- -c -x c++-header $(2) \
- -o $(call gb_SrsPartTarget_get_dep_target,$(1)))
-endef
-
-
-# ComponentTarget
-
-gb_XSLTPROCPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib
-gb_Library_COMPONENTPREFIXES := \
- OOO:vnd.sun.star.expand:\dOOO_BASE_DIR/program/ \
- URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \
-
+include $(GBUILDDIR)/platform/unxgcc.mk
# vim: set noet sw=4:
diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk
new file mode 100755
index 0000000..95e62d4
--- /dev/null
+++ b/solenv/gbuild/platform/unxgcc.mk
@@ -0,0 +1,403 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+GUI := UNX
+COM := GCC
+
+gb_MKTEMP := mktemp -t gbuild.XXXXXX
+
+gb_CC := gcc
+gb_CXX := g++
+gb_GCCP := gcc
+gb_AR := ar
+gb_AWK := awk
+gb_CLASSPATHSEP := :
+
+# use CC/CXX if they are nondefaults
+ifneq ($(origin CC),default)
+gb_CC := $(CC)
+gb_GCCP := $(CC)
+endif
+ifneq ($(origin CXX),default)
+gb_CXX := $(CXX)
+endif
+
+gb_OSDEFS := \
+ -D$(OS) \
+ -D_PTHREADS \
+ -DUNIX \
+ -DUNX \
+ $(PTHREAD_CFLAGS) \
+
+ifeq ($(GXX_INCLUDE_PATH),)
+GXX_INCLUDE_PATH=$(COMPATH)/include/c++/$(shell gcc -dumpversion)
+endif
+
+gb_COMPILERDEFS := \
+ -D$(COM) \
+ -DHAVE_GCC_VISIBILITY_FEATURE \
+ -DCPPU_ENV=gcc3 \
+ -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \
+
+gb_CFLAGS := \
+ -Wall \
+ -Wendif-labels \
+ -Wextra \
+ -Wshadow \
+ -fPIC \
+ -fmessage-length=0 \
+ -fno-common \
+ -fno-strict-aliasing \
+ -fvisibility=hidden \
+ -pipe \
+
+gb_CXXFLAGS := \
+ -Wall \
+ -Wendif-labels \
+ -Wextra \
+ -Wno-ctor-dtor-privacy \
+ -Wno-non-virtual-dtor \
+ -Wshadow \
+ -fPIC \
+ -fmessage-length=0 \
+ -fno-common \
+ -fno-strict-aliasing \
+ -fno-use-cxa-atexit \
+ -fvisibility-inlines-hidden \
+ -fvisibility=hidden \
+ -pipe \
+
+ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE)
+gb_CFLAGS_WERROR := -Werror
+gb_CXXFLAGS_WERROR := -Werror
+endif
+
+ifneq ($(strip $(SYSBASE)),)
+gb_CXXFLAGS += --sysroot=$(SYSBASE)
+gb_CFLAGS += --sysroot=$(SYSBASE)
+endif
+gb_LinkTarget_EXCEPTIONFLAGS := \
+ -DEXCEPTIONS_ON \
+ -fexceptions \
+ -fno-enforce-eh-specs \
+
+gb_LinkTarget_NOEXCEPTIONFLAGS := \
+ -DEXCEPTIONS_OFF \
+ -fno-exceptions \
+
+gb_LinkTarget_LDFLAGS += \
+ -Wl,--sysroot=$(SYSBASE) \
+ -Wl,-rpath-link,$(SYSBASE)/lib:$(SYSBASE)/usr/lib \
+ -Wl,-z,combreloc \
+ -Wl,-z,defs \
+ $(subst -L../lib , ,$(SOLARLIB)) \
+
+ifeq ($(HAVE_LD_HASH_STYLE),TRUE)
+gb_LinkTarget_LDFLAGS += \
+ -Wl,--hash-style=both \
+
+endif
+
+ifneq ($(HAVE_LD_BSYMBOLIC_FUNCTIONS),)
+gb_LinkTarget_LDFLAGS += \
+ -Wl,--dynamic-list-cpp-new \
+ -Wl,--dynamic-list-cpp-typeinfo \
+ -Wl,-Bsymbolic-functions \
+
+endif
+
+ifneq ($(gb_SYMBOL),$(true))
+gb_LinkTarget_LDFLAGS += \
+ -Wl,--strip-all \
+
+endif
+
+ifeq ($(gb_DEBUGLEVEL),2)
+gb_COMPILEROPTFLAGS := -O0
+else
+gb_COMPILEROPTFLAGS := $(gb_COMPILERDEFAULTOPTFLAGS)
+endif
+
+gb_COMPILERNOOPTFLAGS := -O0
+
+# Helper class
+
+gb_Helper_abbreviate_dirs_native = $(gb_Helper_abbreviate_dirs)
+
+gb_Helper_set_ld_path := LD_LIBRARY_PATH=$(OUTDIR)/lib
+
+# convert parametters filesystem root to native notation
+# does some real work only on windows, make sure not to
+# break the dummy implementations on unx*
+define gb_Helper_convert_native
+$(1)
+endef
+
+# CObject class
+
+define gb_CObject__command
+$(call gb_Output_announce,$(2),$(true),C ,3)
+$(call gb_Helper_abbreviate_dirs,\
+ mkdir -p $(dir $(1)) && \
+ mkdir -p $(dir $(call gb_CObject_get_dep_target,$(2))) && \
+ $(gb_CC) \
+ $(DEFS) $(CFLAGS) \
+ -c $(3) \
+ -o $(1) \
+ -MMD -MT $(call gb_CObject_get_target,$(2)) \
+ -MF $(call gb_CObject_get_dep_target,$(2)) \
+ -I$(dir $(3)) \
+ $(INCLUDE))
+endef
+
+
+# CxxObject class
+
+define gb_CxxObject__command
+$(call gb_Output_announce,$(2),$(true),CXX,3)
+$(call gb_Helper_abbreviate_dirs,\
+ mkdir -p $(dir $(1)) && \
+ mkdir -p $(dir $(call gb_CxxObject_get_dep_target,$(2))) && \
+ $(gb_CXX) \
+ $(DEFS) $(CXXFLAGS) \
+ -c $(3) \
+ -o $(1) \
+ -MMD -MT $(call gb_CxxObject_get_target,$(2)) \
+ -MF $(call gb_CxxObject_get_dep_target,$(2)) \
+ -I$(dir $(3)) \
+ $(INCLUDE_STL) $(INCLUDE))
+endef
+
+
+# LinkTarget class
+
+define gb_LinkTarget__get_rpath_for_layer
+$(patsubst $(1):%,%,$(filter $(1):%,$(gb_LinkTarget__RPATHS)))
+endef
+
+gb_LinkTarget__RPATHS := \
+ URELIB:\dORIGIN \
+ UREBIN:\dORIGIN/../lib:\dORIGIN \
+ OOO:\dORIGIN:\dORIGIN/../ure-link/lib \
+ BRAND:\dORIGIN:\dORIGIN/../basis-link/program:\dORIGIN/../basis-link/ure-link/lib \
+ SDKBIN:\dORIGIN/../../ure-link/lib \
+ NONEBIN:\dORIGIN/../lib:\dORIGIN \
+
+gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS)
+gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR)
+
+ifeq ($(gb_DEBUGLEVEL),2)
+gb_LinkTarget_CXXFLAGS += -finline-limit=0 -fno-inline -fno-default-inline
+gb_LinkTarget_CFLAGS += -finline-limit=0 -fno-inline -fno-default-inline
+
+endif
+
+ifeq ($(gb_SYMBOL),$(true))
+gb_LinkTarget_CXXFLAGS += -ggdb3
+gb_LinkTarget_CFLAGS += -ggdb3
+endif
+
+gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC)))
+gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC)))
+
+define gb_LinkTarget__command_dynamiclink
+$(call gb_Helper_abbreviate_dirs,\
+ mkdir -p $(dir $(1)) && \
+ $(gb_CXX) \
+ $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
+ $(subst \d,$$,$(RPATH)) $(LDFLAGS) \
+ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
+ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ -Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call
gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \
+ $(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call
gb_Library_get_filename,$(lib)))) \
+ -o $(1))
+endef
+
+define gb_LinkTarget__command_staticlink
+$(call gb_Helper_abbreviate_dirs,\
+ mkdir -p $(dir $(1)) && \
+ $(gb_AR) -rsu $(1) \
+ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
+ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ 2> /dev/null)
+endef
+
+define gb_LinkTarget__command
+$(call gb_Output_announce,$(2),$(true),LNK,4)
+$(if $(filter Library CppunitTest Executable,$(TARGETTYPE)),$(call
gb_LinkTarget__command_dynamiclink,$(1)))
+$(if $(filter StaticLibrary,$(TARGETTYPE)),$(call gb_LinkTarget__command_staticlink,$(1)))
+endef
+
+
+# Library class
+
+gb_Library_DEFS :=
+gb_Library_TARGETTYPEFLAGS := -shared -Wl,-z,noexecstack
+gb_Library_SYSPRE := lib
+gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_
+gb_Library_PLAINEXT := .so
+gb_Library_RTEXT := gcc3$(gb_Library_PLAINEXT)
+
+gb_Library_OOOEXT := $(gb_Library_DLLPOSTFIX)$(gb_Library_PLAINEXT)
+gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT)
+
+gb_Library_PLAINLIBS_NONE += \
+ dl \
+ jpeg \
+ m \
+ pthread \
+ X11 \
+ z
+
+gb_Library_FILENAMES := \
+ $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \
+ $(foreach
lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \
+ $(foreach
lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \
+ $(foreach
lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \
+ $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \
+ $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT))
\
+ $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \
+ $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \
+ $(foreach
lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \
+
+
+gb_Library_LAYER := \
+ $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):URELIB) \
+ $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):URELIB) \
+ $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):URELIB) \
+ $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):URELIB) \
+
+define gb_Library_get_rpath
+'-Wl,-rpath,$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Library_get_layer,$(1)))' \
+'-Wl,-rpath-link,$(gb_Library_OUTDIRLOCATION)'
+endef
+
+define gb_Library_Library_platform
+$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Library_get_rpath,$(1))
+
+endef
+
+
+# StaticLibrary class
+
+gb_StaticLibrary_DEFS :=
+gb_StaticLibrary_SYSPRE := lib
+gb_StaticLibrary_PLAINEXT := .a
+gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT)
+
+gb_StaticLibrary_FILENAMES := \
+ $(foreach
lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT))
\
+ $(foreach
lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT))
\
+
+gb_StaticLibrary_StaticLibrary_platform =
+
+
+# Executable class
+
+gb_Executable_EXT :=
+
+gb_Executable_LAYER := \
+ $(foreach exe,$(gb_Executable_UREBIN),$(exe):UREBIN) \
+ $(foreach exe,$(gb_Executable_SDK),$(exe):SDKBIN) \
+ $(foreach exe,$(gb_Executable_OOO),$(exe):OOO) \
+ $(foreach exe,$(gb_Executable_BRAND),$(exe):BRAND) \
+ $(foreach exe,$(gb_Executable_NONE),$(exe):NONEBIN) \
+
+
+define gb_Executable_get_rpath
+'-Wl,-rpath,$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Executable_get_layer,$(1)))' \
+-Wl,-rpath-link,$(gb_Library_OUTDIRLOCATION)
+endef
+
+define gb_Executable_Executable_platform
+$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Executable_get_rpath,$(1))
+
+endef
+
+
+# CppunitTest class
+
+gb_CppunitTest_CPPTESTPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib
+gb_CppunitTest_SYSPRE := libtest_
+gb_CppunitTest_EXT := .so
+gb_CppunitTest_get_filename = $(gb_CppunitTest_SYSPRE)$(1)$(gb_CppunitTest_EXT)
+gb_CppunitTest_get_libfilename = $(gb_CppunitTest_get_filename)
+
+define gb_CppunitTest_CppunitTest_platform
+$(call gb_LinkTarget_get_target,$(2)) : RPATH :=
+
+endef
+
+# JunitTest class
+
+define gb_JunitTest_JunitTest_platform
+$(call gb_JunitTest_get_target,$(1)) : DEFS := \
+
-Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:$(OUTDIR)/installation/opt/openoffice.org3/program/soffice}"
\
+ -Dorg.openoffice.test.arg.env=LD_LIBRARY_PATH \
+ -Dorg.openoffice.test.arg.user=file://$(call gb_JunitTest_get_userdir,$(1)) \
+
+endef
+
+# SdiTarget class
+
+gb_SdiTarget_SVIDLPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib
+
+# SrsPartMergeTarget
+
+gb_SrsPartMergeTarget_TRANSEXPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib
+
+# SrsPartTarget class
+
+gb_SrsPartTarget_RSCTARGET := $(OUTDIR)/bin/rsc
+gb_SrsPartTarget_RSCCOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib SOLARBINDIR=$(OUTDIR)/bin
$(gb_SrsPartTarget_RSCTARGET)
+
+define gb_SrsPartTarget__command_dep
+$(call gb_Helper_abbreviate_dirs,\
+ $(gb_GCCP) \
+ -MM -MT $(call gb_SrsPartTarget_get_target,$(1)) \
+ $(INCLUDE) \
+ $(DEFS) \
+ -c -x c++-header $(2) \
+ -o $(call gb_SrsPartTarget_get_dep_target,$(1)))
+endef
+
+
+# ComponentTarget
+
+gb_XSLTPROCPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib
+gb_Library_COMPONENTPREFIXES := \
+ OOO:vnd.sun.star.expand:\dOOO_BASE_DIR/program/ \
+ URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \
+
+
+# vim: set noet sw=4:
--
1.7.4.1
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.