mirror of
https://github.com/gnustep/tools-make.git
synced 2025-04-23 22:33:28 +00:00
Experimental instructions to package standalone Windows apps
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@24725 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
c63b1b3a49
commit
9eb1c912eb
2 changed files with 136 additions and 3 deletions
|
@ -4,7 +4,9 @@
|
|||
/etc/GNUstep/GNUstep.conf.
|
||||
* configure: Regenerated.
|
||||
* FilesystemLayouts/mingw: New layout.
|
||||
* Documentation/README.MinGW: Updated (experimental).
|
||||
* Documentation/README.MinGW: Updated, including instructions to
|
||||
prepare standalone binary applications that can be shipped to
|
||||
end-users (experimental).
|
||||
|
||||
2007-02-26 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
|
|
|
@ -282,8 +282,6 @@ Additionally, you might want to compile and run Gorm or other GNUstep
|
|||
applications. Gorm (and hopefully other GNUstep applications too)
|
||||
should compile and run out of the box.
|
||||
|
||||
|
||||
|
||||
Troubleshooting
|
||||
---------------
|
||||
|
||||
|
@ -296,3 +294,136 @@ Where we specify specific versions of packages to be used, we have tested
|
|||
with those versions ... later or earlier versions may work, but may well not.
|
||||
Generally earlier versions should be assumed not to work.
|
||||
|
||||
|
||||
|
||||
HOW TO PACKAGE YOUR MINGW APPLICATION
|
||||
-------------------------------------
|
||||
|
||||
You probably want to ship your Windows application as a standalone
|
||||
.zip file that Windows users can easily download and use.
|
||||
|
||||
We will explain what to do with an example: that of packaging
|
||||
Gorm.app.
|
||||
|
||||
1. Copy Gorm.app somewhere
|
||||
==========================
|
||||
|
||||
cp -R /usr/local/lib/GNUstep/Apps/Gorm.app /home/Nico/
|
||||
|
||||
|
||||
2. Copy DLLs into Gorm.app
|
||||
==========================
|
||||
|
||||
Now search for DLL files in /bin and /local/bin, and copy them into
|
||||
Gorm.app too:
|
||||
|
||||
cp $(find /bin -name *.dll) /home/Nico/Gorm.app/
|
||||
cp $(find /local/bin -name *.dll) /home/Nico/Gorm.app/
|
||||
|
||||
|
||||
3. Copy your GNUstep Library folder
|
||||
===================================
|
||||
|
||||
cp -R /usr/local/lib/GNUstep/* /home/Nico/Gorm.app/GNUstep/
|
||||
|
||||
4. Copy key GNUstep binary programs
|
||||
===================================
|
||||
|
||||
mkdir -p /home/Nicola/Gorm.app/GNUstep/Tools/
|
||||
cp /local/bin/gpbs.exe /home/Nicola/Gorm.app/GNUstep/Tools
|
||||
cp /local/bin/gdnc.exe /home/Nicola/Gorm.app/GNUstep/Tools
|
||||
cp /local/bin/gdomap.exe /home/Nicola/Gorm.app/GNUstep/Tools
|
||||
cp /local/bin/make_services.exe /home/Nicola/Gorm.app/GNUstep/Tools
|
||||
|
||||
5. Add a GNUstep.conf
|
||||
=====================
|
||||
|
||||
Add a Gorm.app/GNUstep.conf file to tell gnustep-base where to find
|
||||
things inside Gorm.app -- here is the one I use:
|
||||
|
||||
GNUSTEP_USER_CONFIG_FILE=.GNUstep.conf
|
||||
GNUSTEP_USER_DIR=GNUstep
|
||||
GNUSTEP_USER_DEFAULTS_DIR=GNUstep/Defaults
|
||||
|
||||
GNUSTEP_SYSTEM_APPS=./GNUstep/Apps
|
||||
GNUSTEP_SYSTEM_ADMIN_APPS=./GNUstep/Apps
|
||||
GNUSTEP_SYSTEM_TOOLS=./GNUstep/Tools
|
||||
GNUSTEP_SYSTEM_ADMIN_TOOLS=./GNUstep/Tools
|
||||
GNUSTEP_SYSTEM_LIBRARY=./GNUstep
|
||||
GNUSTEP_SYSTEM_HEADERS=./GNUstep/Headers
|
||||
GNUSTEP_SYSTEM_LIBRARIES=./GNUstep/Libraries
|
||||
GNUSTEP_SYSTEM_DOC=./GNUstep/Documentation
|
||||
GNUSTEP_SYSTEM_DOC_MAN=./GNUstep/Documentation/man
|
||||
GNUSTEP_SYSTEM_DOC_INFO=./GNUstep/Documentation/info
|
||||
|
||||
GNUSTEP_NETWORK_APPS=./GNUstep/Apps
|
||||
GNUSTEP_NETWORK_ADMIN_APPS=./GNUstep/Apps
|
||||
GNUSTEP_NETWORK_TOOLS=./GNUstep/Tools
|
||||
GNUSTEP_NETWORK_ADMIN_TOOLS=./GNUstep/Tools
|
||||
GNUSTEP_NETWORK_LIBRARY=./GNUstep
|
||||
GNUSTEP_NETWORK_HEADERS=./GNUstep/Headers
|
||||
GNUSTEP_NETWORK_LIBRARIES=./GNUstep/Libraries
|
||||
GNUSTEP_NETWORK_DOC=./GNUstep/Documentation
|
||||
GNUSTEP_NETWORK_DOC_MAN=./GNUstep/Documentation/man
|
||||
GNUSTEP_NETWORK_DOC_INFO=./GNUstep/Documentation/info
|
||||
|
||||
GNUSTEP_LOCAL_APPS=./GNUstep/Apps
|
||||
GNUSTEP_LOCAL_ADMIN_APPS=./GNUstep/Apps
|
||||
GNUSTEP_LOCAL_TOOLS=./GNUstep/Tools
|
||||
GNUSTEP_LOCAL_ADMIN_TOOLS=./GNUstep/Tools
|
||||
GNUSTEP_LOCAL_LIBRARY=./GNUstep
|
||||
GNUSTEP_LOCAL_HEADERS=./GNUstep/Headers
|
||||
GNUSTEP_LOCAL_LIBRARIES=./GNUstep/Libraries
|
||||
GNUSTEP_LOCAL_DOC=./GNUstep/Documentation
|
||||
GNUSTEP_LOCAL_DOC_MAN=./GNUstep/Documentation/man
|
||||
GNUSTEP_LOCAL_DOC_INFO=./GNUstep/Documentation/info
|
||||
|
||||
So, just copy and paste this code into a GNUstep.conf file that you
|
||||
put into /home/Nico/Gorm.app/GNUstep.conf.
|
||||
|
||||
6. Now the application should be working
|
||||
========================================
|
||||
|
||||
Now if you give your Gorm.app to a Windows user, they should be able
|
||||
to run it by just double-clicking on the Gorm executable inside of the
|
||||
Gorm.app directory! :-)
|
||||
|
||||
7. Cleanup
|
||||
==========
|
||||
|
||||
Finally check your Gorm.app/ and remove anything that you don't
|
||||
strictly need.
|
||||
|
||||
For example, I removed (at least):
|
||||
|
||||
rm Gorm.app/Renaissance.dll
|
||||
rm Gorm.app/ProjectCenter.dll
|
||||
rm -Rf Gorm.app/GNUstep/Apps/GSMarkupBrowser.app
|
||||
rm -Rf Gorm.app/GNUstep/Apps/GSMarkupLocalizableStrings.app
|
||||
rm -Rf Gorm.app/GNUstep/Apps/ProjectCenter.app
|
||||
rm -Rf Gorm.app/GNUstep/Frameworks/ProjectCenter.framework
|
||||
|
||||
Generally, you probably want to build the whole stuff making sure you
|
||||
only include what you strictly need.
|
||||
|
||||
8. Checking Licenses
|
||||
====================
|
||||
|
||||
Before deployment, you need to realize that you are shipping a lot of
|
||||
GNUstep (and non-GNUstep) software with your application. This is
|
||||
fine, just make sure you are aware of the licenses, and that you
|
||||
comply with them (by allowing people to easily get the source code of
|
||||
the GNUstep libraries, for example).
|
||||
|
||||
|
||||
FINAL COMMENTS ON PACKAGING
|
||||
---------------------------
|
||||
|
||||
Gorm.app is 66 MB. Makes you wonder if it could be reduced somehow!
|
||||
;-)
|
||||
|
||||
Also, it's not clear what happens if you have two or three such
|
||||
GNUstep apps downloaded from the web and you try to run them at the
|
||||
same time. What about gdomap etc ?
|
||||
|
||||
Thanks
|
Loading…
Reference in a new issue