Couple things...
Quote:
make destination DESTDIR=/package
...
When I try, I just get a make destination rule not found error
|
Not surprising unless the Apache developers put instructions in their Makefile to compile/update a "destination" object. That's a
make thing, not an OpenBSD/Linux thing. You might try
Code:
./configure --prefix=/package
make DESTDIR=/package/usr/local/httpd
make install DESTDIR=/package/usr/local/httpd
The DESTDIR variable is also a
make thing. There are a couple ways you can influence where a compiled package gets installed. DESTDIR is a common Makefile variable. You can do som funky things with the variables, but usually if you use a value at one stage (like the make install above) you should use the same value in all stages. Again, unless you're trying to do something super-spiffy. If you are, you'll likely know why you have to do it that way.
Also, I'm not sure why you have a --prefix option and override it. All the files the install copies over should go somewhere under the prefix directory. The above three commands would be equivalent to this:
Code:
./configure --prefix=/package/usr/local/httpd
make
make install
If you're really, really concerned that Apache is putting files in other places, compile and install Apache as a regular user. Create a user that has write access only to the directory the Apache source is in, and the prefix directory. When make install is run, you'll get errors if the install tries to copy files anywhere else (permission denied). Even if you need root to do the install to create the package, you can use this dummy account as a dry run to get the commands right. Then you'll be certain that all the files go to the right place even as root.
I won't promise this third bit will fix your problem, but you can try this:
Code:
rmdir /usr/local/httpd
ln -s /package/usr/local/httpd /usr/local/httpd
./configure --prefix=/usr/local/httpd
make
make install
create package
rm /usr/local/httpd
install package
If it's not obvious what that's doing, here's an explanation. Assuming you don't have a /usr/local/httpd directory, get rid of it and replace it with a symlink pointing to /package/usr/local/httpd. Then you can run through the configure, compile, and install as if you were installing directly to /usr/local/httpd. The files will get redirected to /package/... and all the symlinks will still point to /usr/local/... The package it up, remove the /usr/local/httpd symbolic link, install the package, and all the files in the package should still point to the correct location.