[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Mingw-cross-env-list] package removal
From: |
Volker Grabsch |
Subject: |
Re: [Mingw-cross-env-list] package removal |
Date: |
Mon, 25 Jan 2010 13:07:20 +0100 |
User-agent: |
Mutt/1.5.13 (2006-08-11) |
Tony Theodore <address@hidden> schrieb:
> > Having a way to exclude packages from the build *may* be useful
> > though. Something like:
> >
> > make no-qt no-wxwidgets
> >
> > would be good for someone who uses gtk and a long list of other
> > libraries, but rm works well enough.
Maybe you also want to disable gdal, boost, etc. which also take
a long time to build. In the end, I think you're better off writing
a positive list rather than a negative list.
And there is of course my standard counter argument against this
kind of build performance tuning: You usually don't want to wait
for the initial "make" anyway, so you'll run it over night. And
if it runs over night, who cares whether it takes 1 hour or 3 hours?
> Actually, you could use the dependency magic with a pseudo package:
>
> src/my-packages.mk
>
> PKG := my-packages
> $(PKG)_DEPS := gtk boost ..... and a long list of packages you're
> interested in
>
> then simply:
>
> make my-packages
1)
If you go that route, you could also fill in the $(PKG)_BUILD
and put your source tarball into pkg/. Then, you could create
your whole win32 package via:
make my-application
2)
However, I'd propose another way: Create your dependencies in a
custom win32 build script. You usually have such a script anyway,
don't you? It might look like this:
#!/bin/sh
set -euvx
# ensure that all dependencies are created and up to date
cd /PATH/TO/mingw-cross-env
hg pull -u
make gtk boost ...etc...
# cross compile the application
cd /PATH/TO/my-application
./configure --host=i686-pc-mingw32
make
# reduce EXE size
strip my-application.exe
upx my-application.exe
# distribution variant 1: create simple ZIP archive
zip -r9 ...
# distribution variant 2: create installer EXE via NSIS
makensis ...
# upload
scp/rsync ...
3)
There's also a third way you might find interesting: You could
simply document the list of dependencies in your project's README:
(or at another prominent place)
The win32 port of this application needs a mingw-cross-env
which is initialized via:
make gtk boost ...etc...
In other words: Your docs could provide a simple build command
for copy&paste into the command line.
Greets,
Volker
--
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR