1*b30d1939SAndy Fiddaman/* 2*b30d1939SAndy Fiddaman * normalize local -l* library conventions 3*b30d1939SAndy Fiddaman * 4*b30d1939SAndy Fiddaman * L [ [ G11 ... G1n ] ... [ Gg1 ... Ggn ] ] :MAPLIB: T1.c ... Tn.c 5*b30d1939SAndy Fiddaman * 6*b30d1939SAndy Fiddaman * if Giji not specified then G11 == L 7*b30d1939SAndy Fiddaman * the first Ti.c that compiles/links with group -lGi1 ... -lGin 8*b30d1939SAndy Fiddaman * but does not compile/link with no libraries maps 9*b30d1939SAndy Fiddaman * -lL to to require -lGi1 ... -lGin 10*b30d1939SAndy Fiddaman * otherwise -lL is not required and maps to "no library required" 11*b30d1939SAndy Fiddaman */ 12*b30d1939SAndy Fiddaman 13*b30d1939SAndy Fiddaman":MAPLIB:" : .MAKE .OPERATOR 14*b30d1939SAndy Fiddaman local L P 15*b30d1939SAndy Fiddaman L := $(<:B:O=1) 16*b30d1939SAndy Fiddaman if ! ( P = "$(<:B:O>1)" ) 17*b30d1939SAndy Fiddaman P := $(L) 18*b30d1939SAndy Fiddaman end 19*b30d1939SAndy Fiddaman $(LIBDIR)/lib/$(L) :INSTALL: $(L).req 20*b30d1939SAndy Fiddaman eval 21*b30d1939SAndy Fiddaman $(L).req : (CC) $$(>) 22*b30d1939SAndy Fiddaman set - 23*b30d1939SAndy Fiddaman r='-' 24*b30d1939SAndy Fiddaman for i in $$(*) 25*b30d1939SAndy Fiddaman do if $$(CC) -c $i > /dev/null 26*b30d1939SAndy Fiddaman then g= 27*b30d1939SAndy Fiddaman for p in $(P) - 28*b30d1939SAndy Fiddaman do case $p in 29*b30d1939SAndy Fiddaman -) if $$(CC) -o $$(<:B:S=.exe) $i $g > /dev/null 2>&1 30*b30d1939SAndy Fiddaman then $$(CC) -o $$(<:B:S=.exe) $i > /dev/null 2>&1 || { 31*b30d1939SAndy Fiddaman r="$g" 32*b30d1939SAndy Fiddaman break 2 33*b30d1939SAndy Fiddaman } 34*b30d1939SAndy Fiddaman fi 35*b30d1939SAndy Fiddaman g= 36*b30d1939SAndy Fiddaman ;; 37*b30d1939SAndy Fiddaman *) g="$g -l$p" 38*b30d1939SAndy Fiddaman ;; 39*b30d1939SAndy Fiddaman esac 40*b30d1939SAndy Fiddaman done 41*b30d1939SAndy Fiddaman fi 42*b30d1939SAndy Fiddaman done 2>/dev/null 43*b30d1939SAndy Fiddaman echo " $r" > $$(<) 44*b30d1939SAndy Fiddaman rm -f $$(<:B:S=.exe) $$(*:B:S=$$(CC.SUFFIX.OBJECT)) 45*b30d1939SAndy Fiddaman end 46