[cs631apue] Makefile in different platforms

lbustama lbustama at stevens.edu
Sun Dec 15 23:30:46 EST 2013


Just in case... you also have to use the following flag to tell the 
compiler where to find the magic.h header file:

-I /opt/local/include

Luis

On 12/15/2013 9:26 PM, lbustama wrote:
> for OmniOS you have to tell the compiler/linker where to find the
> libmagic files:
> 
> this is what we used on our makefile:
> 
> -L /opt/local/lib/ -Wl,-rpath,/opt/local/lib/,-lmagic,-lsocket,-lnsl
> 
> -L tells the linker where to find the libraries, the -rpath is needed
> to load the files when running the executable.
> 
> regarding the bsd libraries, I don't think they're needed, just
> enclose the #include<bsd/...> statement like this
> 
> #ifndef sun
> 
> #include<bsd/...>
> 
> #endif
> 
> see here for OS specific pre-defined compiler macros
> http://sourceforge.net/p/predef/wiki/OperatingSystems/
> 
> Luis
> 
> On 12/15/2013 8:46 PM, Hongyi Shen wrote:
>> And OmniOS lack of -lbsd and -lmagic is another problem
>> 
>> On Sun, Dec 15, 2013 at 4:45 PM, Hongyi Shen <hshen4 at stevens.edu>
>> wrote:
>> 
>>> According to some material, my Makefile has something like this:
>>> 
>>> ROOT=.
>>> PLATFORM=$(shell uname -s)
>>> include $(ROOT)/Make.on.$(PLATFORM)
>>> 
>>> With extra files like Make.on.NetBSD, Make.on.SunOS, Make.on.Linux
>>> ... containing different rules.
>>> 
>>> NetBSD and OmniOS seems doesn't recognize them and print out "Could
>>> not find ./Make.on."
>>> 
>>> Any suggestions?
>> 
>> 
>> _______________________________________________
>> cs631apue mailing list
>> cs631apue at lists.stevens.edu
>> https://lists.stevens.edu/mailman/listinfo/cs631apue
> _______________________________________________
> cs631apue mailing list
> cs631apue at lists.stevens.edu
> https://lists.stevens.edu/mailman/listinfo/cs631apue


More information about the cs631apue mailing list