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

View File

@ -739,10 +739,13 @@ rule MultiArchSubDirSetup architectures
$(var) on $(architectureObject) = $($(var)) ;
}
# adjust SOURCE_GRIST
# adjust SOURCE_GRIST and HDRGRIST
SOURCE_GRIST on $(architectureObject)
= $(SOURCE_GRIST:E=)!$(architecture) ;
HDRGRIST on $(architectureObject)
= $(HDRGRIST:E=)!$(architecture) ;
# Adjust the subdir's object dirs that are architecture dependent. To
# avoid duplicating the code from SetupObjectsDir, we call it. Since it
# sets global variables, we set these variables on our object, call

View File

@ -5,10 +5,15 @@ for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
local architecture = $(TARGET_PACKAGING_ARCH) ;
#HDRGRIST = [ FGrist $(SUBDIR_TOKENS) $(architecture) ] ;
UseHeaders [ FDirName $(SUBDIR) include ] : true ;
UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network compat ]
: 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) ;
# private sources for this port
@ -24,18 +29,14 @@ for architectureObject in [ MultiArchSubDirSetup ] {
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 ;
defines = [ FDefines $(defines) ] ;
SubDirCcFlags $(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 :
# dst
dst_api.c
@ -79,8 +80,8 @@ for architectureObject in [ MultiArchSubDirSetup ] {
getservent_r.c
hesiod.c
nsdispatch.c
nsparser.y
nslexer.l
nsparser.y
sethostent.c
vars6.c