Properly fix Lex/Yacc dependency following Ingo's advice

* By setting HDRGRIST to match SOURCE_GRIST in MultiArchDirSetup, the
include scanning in Jam will work properly: the generated header will
have the same grist as what the include scan looks for.
* Remove the now unneeded workaround from netresolv Jamfile.
This commit is contained in:
Adrien Destugues
2015-06-15 19:27:12 +02:00
parent 56b2d534cb
commit f15fb39b20
2 changed files with 12 additions and 8 deletions
+4 -1
View File
@@ -739,10 +739,13 @@ rule MultiArchSubDirSetup architectures
$(var) on $(architectureObject) = $($(var)) ; $(var) on $(architectureObject) = $($(var)) ;
} }
# adjust SOURCE_GRIST # adjust SOURCE_GRIST and HDRGRIST
SOURCE_GRIST on $(architectureObject) SOURCE_GRIST on $(architectureObject)
= $(SOURCE_GRIST:E=)!$(architecture) ; = $(SOURCE_GRIST:E=)!$(architecture) ;
HDRGRIST on $(architectureObject)
= $(HDRGRIST:E=)!$(architecture) ;
# Adjust the subdir's object dirs that are architecture dependent. To # Adjust the subdir's object dirs that are architecture dependent. To
# avoid duplicating the code from SetupObjectsDir, we call it. Since it # avoid duplicating the code from SetupObjectsDir, we call it. Since it
# sets global variables, we set these variables on our object, call # sets global variables, we set these variables on our object, call
+8 -7
View File
@@ -5,10 +5,15 @@ for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) { on $(architectureObject) {
local architecture = $(TARGET_PACKAGING_ARCH) ; local architecture = $(TARGET_PACKAGING_ARCH) ;
#HDRGRIST = [ FGrist $(SUBDIR_TOKENS) $(architecture) ] ;
UseHeaders [ FDirName $(SUBDIR) include ] : true ; UseHeaders [ FDirName $(SUBDIR) include ] : true ;
UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network compat ] UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network compat ]
: true ; : true ;
UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ; UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ;
UseHeaders [ FDirName
$(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCHS[1]))
kits network netresolv ] ;
SubDirSysHdrs $(SUBDIR) ; SubDirSysHdrs $(SUBDIR) ;
# private sources for this port # private sources for this port
@@ -24,18 +29,14 @@ for architectureObject in [ MultiArchSubDirSetup ] {
SEARCH_SOURCE += [ FDirName $(SUBDIR) resolv ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) resolv ] ;
{ {
# we want to have the xxx_r functions, too # we want to have the xxx_r functions, IPv6, and md5 implementation
# we also need to use our BSD compatibility functions
local defines = _REENTRANT=1 USE_MD5=1 _BSD_SOURCE ; local defines = _REENTRANT=1 USE_MD5=1 _BSD_SOURCE ;
defines = [ FDefines $(defines) ] ; defines = [ FDefines $(defines) ] ;
SubDirCcFlags $(defines) ; SubDirCcFlags $(defines) ;
SubDirC++Flags $(defines) ; SubDirC++Flags $(defines) ;
} }
# the header doesn't appear to get the architecture gristed, so
# make the dependency explicit
Includes <src!kits!network!netresolv!$(architecture)>nslexer.l
: <src!kits!network!netresolv!$(architecture)>nsparser.h ;
MergeObject <netresolv!$(architecture)>netresolv.o : MergeObject <netresolv!$(architecture)>netresolv.o :
# dst # dst
dst_api.c dst_api.c
@@ -79,8 +80,8 @@ for architectureObject in [ MultiArchSubDirSetup ] {
getservent_r.c getservent_r.c
hesiod.c hesiod.c
nsdispatch.c nsdispatch.c
nsparser.y
nslexer.l nslexer.l
nsparser.y
sethostent.c sethostent.c
vars6.c vars6.c