[csw-devel] SF.net SVN: gar:[20987] csw/mgar/pkg

Ralph Böhme sloowfranklin at gmail.com
Sat May 4 19:16:59 CEST 2013


2013/5/4 Maciej Bliziński <maciej at opencsw.org>:
>> +DISTFILES  = $(NAME)-$(VERSION).tar.bz2
>
> You can use DISTNAME instead of $(NAME)-$(VERSION).

Yeah, I tend to forget the template value.

> Note to self: we should fix the template.

Yes please. ;)

>
>> +GARCOMPILER = GNU
>> +
>> +EXTRA_PKG_CONFIG_DIRS = $(prefix)/X11/lib
>
> We should not be using /opt/csw/X11, we should be using system X11
> instead.

??? Why?

Also that would mean I'd have to add the system pkg-config paths to
EXTRA_PKG_CONFIG_DIRS so that the package finds xproto.pc.

>> +EXTRA_INC = $(prefix)/include/gtk-2.0
>> +EXTRA_INC += $(prefix)/include/cairo
>> +EXTRA_INC += $(prefix)/include/pango-1.0
>> +EXTRA_INC += $(prefix)/lib/gtk-2.0/include/
>> +EXTRA_INC += $(prefix)/include/gdk-pixbuf-2.0/
>> +EXTRA_INC += $(prefix)/include/atk-1.0/
>
> This doesn't look right. Normally, you only have -I/opt/csw/include
> (which is the default already) and source code refers to relative paths
> underneath. What happens when you remove these lines?

Afaict, a package Makefile (and probably configure.ac) for a
particular subdirectory is broken and misses to add the appropiate
include search paths. If we remove them compilation fails with missing
headers. For every single one of them

>> +CONFIGURE_ARGS += CFLAGS="-std=c99 -D__EXTENSIONS__"
>
> __EXTENSIONS__ is a flag meaningful for Solaris Studio, is it meaningful
> for GCC at all? I would think it isn't.

The define is meant to tweak the compilation _enviroment_ ie it
effects the interfaces from a requested C/POSIX/SUS standard.
The package requests C99 standard which in Solaris hides all
non-standard interfaces. Defining __EXTENSIONS__ brings them back,
regardless of the compiler.

$ man standards.5 | grep -B 5 -A 2 EXTENSIONS

     standard. If the application is using interfaces and headers
     not  defined  by that standard, then in addition to defining
     the appropriate standard feature test macro,  it  must  also
     define  __EXTENSIONS__. Defining __EXTENSIONS__ provides the
     application with access to all interfaces and headers not in
     conflict  with  the specified standard. The application must
     define __EXTENSIONS__ either on the compile command line  or
     within the application source files.

Cheers!
-slow


More information about the devel mailing list