summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell Lang <gsview@ghostgum.com.au>2001-04-01 10:13:24 +0000
committerRussell Lang <gsview@ghostgum.com.au>2001-04-01 10:13:24 +0000
commit4a753eeedfdb0f4e2825c212157fc6fa0d91d151 (patch)
tree5810f49f8d43eef99a59f94d2aa179d961a45f76
parent31d72e614a8ddae7920c488d7fbe4f7b70b9ea5b (diff)
downloadghostpdl-4a753eeedfdb0f4e2825c212157fc6fa0d91d151.tar.gz
Adds target to OS/2 makefile to build distribution zip archive.
Disables multiple image windows for OS/2 because we can't tell when subsequent windows are closed. To allow multiple windows we would need to rewrite gspmdrv.c. git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@1351 a1074d23-0009-0410-80fe-cf8c14f379e6
-rw-r--r--gs/src/dpmain.c19
-rw-r--r--gs/src/os2.mak26
2 files changed, 45 insertions, 0 deletions
diff --git a/gs/src/dpmain.c b/gs/src/dpmain.c
index cbcc59f68..d3626dd48 100644
--- a/gs/src/dpmain.c
+++ b/gs/src/dpmain.c
@@ -566,6 +566,25 @@ int display_open(void *handle, void *device)
fprintf(stdout, "display_open(0x%x, 0x%x)\n", handle, device);
#endif
+ if (first_image) {
+ /* gsos2.exe is a console application, and displays using
+ * gspmdrv.exe which is a PM application. To start
+ * gspmdrv.exe, DosStartSession is used with SSF_RELATED_CHILD.
+ * A process can have only one child session marked SSF_RELATED_CHILD.
+ * When we call DosStopSession for the second session, it will
+ * close, but it will not write to the termination queue.
+ * When we wait for the session to end by reading the
+ * termination queue, we wait forever.
+ * For this reason, multiple image windows are disabled
+ * for OS/2.
+ * To get around this, we would need to replace the current
+ * method of one gspmdrv.exe session per window, to having
+ * a new PM application which can display multiple windows
+ * within a single session.
+ */
+ return e_limitcheck;
+ }
+
img = (IMAGE *)malloc(sizeof(IMAGE));
if (img == NULL)
return e_limitcheck;
diff --git a/gs/src/os2.mak b/gs/src/os2.mak
index ad14347f2..b23640c02 100644
--- a/gs/src/os2.mak
+++ b/gs/src/os2.mak
@@ -664,3 +664,29 @@ $(BINDIR)\gspmdrv.exe: $(GLOBJ)gspmdrv.o $(GLOBJ)gspmdrv.res $(GLSRC)gspmdrv.def
$(COMPDIR)\$(COMP) $(CGDB) $(CO) -o $(GLOBJ)gspmdrv $(GLOBJ)gspmdrv.o
$(COMPDIR)\emxbind -p -r$(GLOBJ)gspmdrv.res -d$(GLSRC)gspmdrv.def $(COMPDIR)\emxl.exe $(GLOBJ)gspmdrv $(BINDIR)\gspmdrv.exe
del $(GLOBJ)gspmdrv
+
+# Create a ZIP archive
+# This assumes that the current directory is named gs#.## relative to its
+# parent, where #.## is the Ghostscript version.
+
+ZIP_XE=zip
+ZIPPROGFILE1=gs$(GS_DOT_VERSION)\bin\gsos2.exe
+ZIPPROGFILE2=gs$(GS_DOT_VERSION)\bin\gsdll2.dll
+ZIPPROGFILE3=gs$(GS_DOT_VERSION)\bin\gspmdrv.exe
+ZIPPROGFILE4=gs$(GS_DOT_VERSION)\doc
+ZIPPROGFILE5=gs$(GS_DOT_VERSION)\examples
+ZIPPROGFILE6=gs$(GS_DOT_VERSION)\lib
+ZIPFONTDIR=fonts
+
+# Make the zip archive.
+zip:
+ cd ..
+ -del gs$(GS_VERSION)os2.zip
+ $(ZIP_XE) -9 -r gs$(GS_VERSION)os2.zip $(ZIPFONTDIR)
+ $(ZIP_XE) -9 -r gs$(GS_VERSION)os2.zip $(ZIPPROGFILE1)
+ $(ZIP_XE) -9 -r gs$(GS_VERSION)os2.zip $(ZIPPROGFILE2)
+ $(ZIP_XE) -9 -r gs$(GS_VERSION)os2.zip $(ZIPPROGFILE3)
+ $(ZIP_XE) -9 -r gs$(GS_VERSION)os2.zip $(ZIPPROGFILE4)
+ $(ZIP_XE) -9 -r gs$(GS_VERSION)os2.zip $(ZIPPROGFILE5)
+ $(ZIP_XE) -9 -r gs$(GS_VERSION)os2.zip $(ZIPPROGFILE6)
+ cd gs$(GS_DOT_VERSION)