bug 330280 - add hpux gtk
diff --git a/bundles/org.eclipse.equinox.executable/feature.xml b/bundles/org.eclipse.equinox.executable/feature.xml
index 20f1817..f47a59f 100644
--- a/bundles/org.eclipse.equinox.executable/feature.xml
+++ b/bundles/org.eclipse.equinox.executable/feature.xml
@@ -157,7 +157,17 @@
          install-size="0"
          version="0.0.0"
          fragment="true"/>
-         
+
+   <plugin
+         id="org.eclipse.equinox.launcher.gtk.hpux.ia64_32"
+         os="hpux"
+         ws="gtk"
+         arch="ia64_32"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         fragment="true"/>
+                  
    <plugin
          id="org.eclipse.equinox.launcher.motif.hpux.ia64_32"
          os="hpux"
diff --git a/bundles/org.eclipse.equinox.executable/library/gtk/build.sh b/bundles/org.eclipse.equinox.executable/library/gtk/build.sh
index e54ee5a..b09a64a 100644
--- a/bundles/org.eclipse.equinox.executable/library/gtk/build.sh
+++ b/bundles/org.eclipse.equinox.executable/library/gtk/build.sh
@@ -101,6 +101,12 @@
 		defaultOSArch="ppc64"
 		[ -d /bluebird/teamswt/swt-builddir/JDKs/AIX/PPC64/j564/sdk ] && defaultJavaHome="/bluebird/teamswt/swt-builddir/JDKs/AIX/PPC64/j564/sdk"
 	;;
+	"HP-UX")
+		makefile="make_hpux.mak"
+		defaultOS="hpux"
+		defaultOSArch="ia64_32"
+		[ -d /opt/java1.5 ] && defaultJavaHome="/opt/java1.5"
+	;;
 	"SunOS")
 		makefile="make_solaris.mak"
 		defaultOS="solaris"
diff --git a/bundles/org.eclipse.equinox.executable/library/gtk/eclipseGtk.c b/bundles/org.eclipse.equinox.executable/library/gtk/eclipseGtk.c
index 7352af3..c93804b 100644
--- a/bundles/org.eclipse.equinox.executable/library/gtk/eclipseGtk.c
+++ b/bundles/org.eclipse.equinox.executable/library/gtk/eclipseGtk.c
@@ -35,6 +35,10 @@
 #include <semaphore.h>
 #include <fcntl.h>
 
+#ifdef HPUX
+#define SEM_FAILED (void *)-1
+#endif
+
 /* Global Variables */
 char*  defaultVM     = "java";
 char*  vmLibrary 	 = "libjvm.so";
diff --git a/bundles/org.eclipse.equinox.executable/library/gtk/make_hpux.mak b/bundles/org.eclipse.equinox.executable/library/gtk/make_hpux.mak
new file mode 100644
index 0000000..5d12d90
--- /dev/null
+++ b/bundles/org.eclipse.equinox.executable/library/gtk/make_hpux.mak
@@ -0,0 +1,99 @@
+#*******************************************************************************
+# Copyright (c) 2000, 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at 
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+#     Kevin Cornell (Rational Software Corporation)
+#     Sumit Sarkar (Hewlett-Packard)
+#*******************************************************************************
+include ../make_version.mak
+# Makefile for creating the HPUX/Motif eclipse launcher program.
+
+# This makefile expects the following environment variables set:
+#
+# PROGRAM_OUTPUT  - the filename of the output executable
+# DEFAULT_OS      - the default value of the "-os" switch
+# DEFAULT_OS_ARCH - the default value of the "-arch" switch
+# DEFAULT_WS      - the default value of the "-ws" switch
+# X11_HOME	 - the full path to X11 header files
+# MOTIF_HOME	 - the full path to Motif header files
+
+#ifeq ($(PROGRAM_OUTPUT),)
+#  PROGRAM_OUTPUT=eclipse
+#endif
+
+DEFAULT_JAVA=DEFAULT_JAVA_EXEC
+PROGRAM_LIBRARY=eclipse_$(LIB_VERSION).so
+
+# Define the object modules to be compiled and flags.
+CC=gcc
+MAIN_OBJS = eclipseMain.o
+COMMON_OBJS = eclipseConfig.o eclipseCommon.o eclipseGtkCommon.o eclipseGtkInit.o
+DLL_OBJS	= eclipse.o eclipseGtk.o eclipseUtil.o eclipseJNI.o eclipseShm.o eclipseNix.o
+
+EXEC = $(PROGRAM_OUTPUT)
+DLL = $(PROGRAM_LIBRARY)
+LIBS = -L$(MOTIF_HOME)/lib -L$(X11_HOME)/lib -lpthread -lrt
+GTK_LIBS = -DGTK_LIB="\"libgtk-x11-2.0.so\"" -DGDK_LIB="\"libgdk-x11-2.0.so\"" -DPIXBUF_LIB="\"libgdk_pixbuf-2.0.so\"" \
+ -DGOBJ_LIB="\"libgobject-2.0.so\"" -DX11_LIB="\"libX11.so\""
+LFLAGS = -shared -static-libgcc
+# -Wl,--export-dynamic
+CFLAGS = -O -s \
+	-DNETSCAPE_FIX \
+	-DDEFAULT_OS="\"$(DEFAULT_OS)\"" \
+	-DDEFAULT_OS_ARCH="\"$(DEFAULT_OS_ARCH)\"" \
+	-DDEFAULT_WS="\"$(DEFAULT_WS)\"" \
+	-D$(DEFAULT_JAVA) \
+	-DHPUX \
+	$(GTK_LIBS) \
+	-I./ \
+	-I../ \
+	-I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/hp-ux \
+	`pkg-config --cflags gtk+-2.0`
+
+all: $(EXEC) $(DLL)
+
+.c.o:
+	$(CC) $(CFLAGS) -c $< -o $@
+
+eclipse.o: ../eclipse.c ../eclipseOS.h ../eclipseCommon.h ../eclipseJNI.h
+	$(CC) $(CFLAGS) -c ../eclipse.c -o $@
+	
+eclipseMain.o: ../eclipseMain.c ../eclipseUnicode.h ../eclipseCommon.h  
+	$(CC) $(CFLAGS) -c ../eclipseMain.c -o $@
+
+eclipseCommon.o: ../eclipseCommon.c ../eclipseCommon.h ../eclipseUnicode.h 
+	$(CC) $(CFLAGS) -c ../eclipseCommon.c -o $@
+	
+eclipseUtil.o: ../eclipseUtil.c ../eclipseUtil.h ../eclipseOS.h
+	$(CC) $(CFLAGS) -c ../eclipseUtil.c -o $@
+
+eclipseJNI.o: ../eclipseJNI.c ../eclipseCommon.h ../eclipseOS.h ../eclipseJNI.h
+	$(CC) $(CFLAGS) -c ../eclipseJNI.c -o $@
+	
+eclipseConfig.o: ../eclipseConfig.c ../eclipseConfig.h ../eclipseOS.h
+	$(CC) $(CFLAGS) -c ../eclipseConfig.c -o $@
+	
+eclipseShm.o: ../eclipseShm.h ../eclipseUnicode.h ../eclipseShm.c
+	$(CC) $(CFLAGS) -c ../eclipseShm.c -o $@
+
+eclipseNix.o: ../eclipseNix.c
+	$(CC) $(CFLAGS) -c ../eclipseNix.c -o $@
+
+$(EXEC): $(MAIN_OBJS) $(COMMON_OBJS)
+	$(CC) -o $(EXEC) $(MAIN_OBJS) $(COMMON_OBJS) $(LIBS)
+
+$(DLL): $(DLL_OBJS) $(COMMON_OBJS)
+	$(CC) $(LFLAGS) -o $(DLL) $(DLL_OBJS) $(COMMON_OBJS) $(LIBS)
+	
+install: all
+	cp $(EXEC) $(OUTPUT_DIR)
+	cp  $(DLL) $(LIBRARY_DIR)
+	rm -f $(EXEC) $(MAIN_OBJS) $(COMMON_OBJS) $(DLL_OBJS)
+
+clean:
+	rm -f $(EXEC) $(MAIN_OBJS) $(COMMON_OBJS) $(DLL_OBJS)
diff --git a/bundles/org.eclipse.equinox.executable/target.build.properties b/bundles/org.eclipse.equinox.executable/target.build.properties
index 91f8b08..4baa9bb 100644
--- a/bundles/org.eclipse.equinox.executable/target.build.properties
+++ b/bundles/org.eclipse.equinox.executable/target.build.properties
@@ -48,6 +48,7 @@
 
 root.hpux.motif.PA_RISC=bin/motif/hpux/PA_RISC
 root.hpux.motif.ia64_32=bin/motif/hpux/ia64_32
+root.hpux.gtk.ia64_32=bin/gtk/hpux/ia64_32
 
 root.solaris.motif.sparc=contributed/motif/solaris/sparc
 root.solaris.gtk.x86=bin/gtk/solaris/x86
diff --git a/bundles/org.eclipse.equinox.executable/target.build.xml b/bundles/org.eclipse.equinox.executable/target.build.xml
index f8a5d57..f314c21 100644
--- a/bundles/org.eclipse.equinox.executable/target.build.xml
+++ b/bundles/org.eclipse.equinox.executable/target.build.xml
@@ -258,6 +258,13 @@
 		</copy>
 		<chmod perm="755" dir="${feature.base}/hpux.motif.ia64_32/${collectingFolder}" includes="launcher" /> 
 	</target>
+	<target name="rootFileshpux_gtk_ia64_32">
+		<mkdir dir="${feature.base}/hpux.gtk.ia64_32/${collectingFolder}"/>
+		<copy todir="${feature.base}/hpux.gtk.ia64_32/${collectingFolder}" failonerror="true" overwrite="true">
+			<fileset dir="${basedir}/bin/gtk/hpux/ia64_32" includes="**"			/>
+		</copy>
+		<chmod perm="755" dir="${feature.base}/hpux.gtk.ia64_32/${collectingFolder}" includes="launcher" /> 
+	</target>
 	<target name="rootFilesqnx_photon_x86">
 		<mkdir dir="${feature.base}/qnx.photon.x86/${collectingFolder}"/>
 		<copy todir="${feature.base}/qnx.photon.x86/${collectingFolder}" failonerror="true" overwrite="true">
@@ -290,6 +297,7 @@
 		<antcall target="rootFileshpux_motif_PA_RISC"/>
 		<antcall target="rootFileshpux_motif_ia64"/>
 		<antcall target="rootFileshpux_motif_ia64_32"/>
+		<antcall target="rootFileshpux_gtk_ia64_32"/>
 		<antcall target="rootFilesqnx_photon_x86"/>
 	</target>
 
diff --git a/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/.project b/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/.project
new file mode 100644
index 0000000..5a170fc
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.equinox.launcher.gtk.hpux.ia64_32</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..db68ec3
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,4 @@
+#Tue Nov 16 14:45:38 EST 2010
+eclipse.preferences.version=1
+resolve.requirebundle=false
+pluginProject.extensions=false
diff --git a/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..6697f25
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-SymbolicName: org.eclipse.equinox.launcher.gtk.hpux.ia64_32
+Bundle-Version: 1.0.0.qualifier
+Fragment-Host: org.eclipse.equinox.launcher;bundle-version="1.0.0"
+Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=hpux) (osgi.arch=ia64_32))
+Bundle-Localization: launcher.gtk.hpux.ia64_32
+Eclipse-BundleShape: dir
diff --git a/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/about.html b/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/about.html
new file mode 100644
index 0000000..395df3b
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  
+Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor&rsquo;s license 
+that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/build.properties b/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/build.properties
new file mode 100644
index 0000000..adeadd4
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/build.properties
@@ -0,0 +1,7 @@
+bin.includes = META-INF/,\
+               eclipse_*.so,\
+               launcher.gtk.hpux.ia64_32.properties,\
+               about.html
+               
+customBuildCallbacks=customBuildCallbacks.xml
+generateSourceBundle=false
diff --git a/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/customBuildCallbacks.xml b/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/customBuildCallbacks.xml
new file mode 100644
index 0000000..32c8ef4
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/customBuildCallbacks.xml
@@ -0,0 +1,109 @@
+<!-- ===================================================================== -->
+<!-- Custom targets called from a project's generated build.xml            -->
+<!-- Set customBuildCallbacks=<path/to/this/file> in your build.properties.-->
+<!-- ===================================================================== -->
+<project name="Build specific targets and properties" default="noDefault">
+
+	<!-- ===================================================================== -->
+	<!-- Default target                                                        -->
+	<!-- ===================================================================== -->
+	<target name="noDefault">
+		<echo message="This file must be called with explicit targets" />
+	</target>
+	
+	<!-- ===================================================================== -->
+	<!-- Steps to do before the target build.jars                              -->
+	<!-- Available parameters :                                                -->
+	<!--   build.result.folder - folder to contain the build results           -->
+	<!-- ===================================================================== -->
+	<target name="pre.build.jars">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after the target build.jars                               -->
+	<!-- Available parameters :                                                -->
+	<!--   build.result.folder - folder to contain the build results           -->
+	<!-- ===================================================================== -->
+	<target name="post.build.jars">	
+	</target>
+	
+	<!-- ===================================================================== -->
+	<!-- Steps to do before the target build.sources                           -->
+	<!-- Available parameters :                                                -->
+	<!--   build.result.folder - folder to contain the build results           -->
+	<!-- ===================================================================== -->
+	<target name="pre.build.sources">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after the target build.sources                            -->
+	<!-- Available parameters :                                                -->
+	<!--   build.result.folder - folder to contain the build results           -->
+	<!-- ===================================================================== -->
+	<target name="post.build.sources">
+	</target>
+	
+	<target name="pre.gather.bin.parts">
+	</target>
+	
+	<!-- ===================================================================== -->
+	<!-- Steps to do after the target gather.bin.parts                         -->
+	<!-- Available parameters :                                                -->
+	<!--   base.dir - root of the project                                      -->
+	<!--   build.result.folder - folder containing the build results           -->
+	<!--   target.folder - destination folder                                  -->
+	<!-- ===================================================================== -->
+	<target name="post.gather.bin.parts">
+		<chmod perm="755" dir="${target.folder}" includes="eclipse_*" />
+	</target>
+	
+	<!-- ===================================================================== -->
+	<!-- Steps to do before the target gather.sources                          -->
+	<!-- Available parameters :                                                -->
+	<!--   destination.temp.folder - destination folder                        -->
+	<!-- ===================================================================== -->
+	<target name="pre.gather.sources">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after the target gather.sources                           -->
+	<!-- Available parameters :                                                -->
+	<!--   destination.temp.folder - destination folder                        -->
+	<!-- ===================================================================== -->
+	<target name="post.gather.sources">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do before the target gather.logs                             -->
+	<!-- Available parameters :                                                -->
+	<!--   destination.temp.folder - destination folder                        -->
+	<!-- ===================================================================== -->
+	<target name="pre.gather.logs">        
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after the target gather.logs                              -->
+	<!-- Available parameters :                                                -->
+	<!--   destination.temp.folder - destination folder                        -->
+	<!-- ===================================================================== -->
+	<target name="post.gather.logs">       
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do before the target clean                                   -->
+	<!-- Available parameters :                                                -->
+	<!--   destination.temp.folder - destination folder                        -->
+	<!-- ===================================================================== -->
+	<target name="pre.clean">              
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after the target clean                                    -->
+	<!-- Available parameters :                                                -->
+	<!--   plugin.destination - final destination of the build                 -->
+	<!--   build.result.folder - results of the compilation                    -->
+	<!--   temp.folder - temporary folder                                      -->
+	<!-- ===================================================================== -->
+	<target name="post.clean">             
+	</target>
+</project>
diff --git a/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/launcher.gtk.hpux.ia64_32.properties b/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/launcher.gtk.hpux.ia64_32.properties
new file mode 100644
index 0000000..ae7515a
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher/fragments/org.eclipse.equinox.launcher.gtk.hpux.ia64_32/launcher.gtk.hpux.ia64_32.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+pluginName = Equinox Launcher GTK HPUX IA64_32 Fragment
+providerName = Eclipse.org - Equinox