Здравствуйте. У меня вопрос скорее не по программированию, а по сборке. Сам я на си не пишу, хотя в общих чертах представляю этот язык. Имеется hp-ux B.11.23 (PA-RISC) с GCC 4.4.3 и 4.3.1. Есть Makefile для сборки программы. Вся зависимая от ОС часть вынесена в отдельные файлы (есть варианты для коммерческих юниксов: HP-UX, SunOS, AIX, OSF1). | Код | #!/bin/sh # # $Id: build.HP-UX,v 1.2 1999/08/24 14:39:31 d019080 Exp $ # OBJ=".o" CC="cc" CFLAGS="-Ae -g -DXDEBUG=1" RM="rm -f" EXE="" LD="$CC" LDFLAGS="" LDTARGET='-o $@' XD="" LDLIBS="-Wl,-a,default -lc -ldld" if [ -f /opt/langtools/lib/end.o ] ; then # this is for shared library debugging on HP-UX (10.20) ... LDLIBS="${LDLIBS} /opt/langtools/lib/end.o" fi SHEXT=".sl" SHFLAGS="+z" LINK_SHARED="ld +vshlibunsats +s -b" LINK_SHARED_END="-a default -lc"
#VENLIB="-L/your/software/path +b /your/software/path -lgssapi" VENLIB="-L/sapmnt/hs0101/b/security/secude5.2/hp/lib.secude -lsecude" if [ "$VENLIB" = "" ] ; then echo "***" echo "*** Please edit $0 and define VENLIB to link your" echo "*** GSS-API v2 shared library" echo "***" exit 1 fi
export OBJ CC CFLAGS RM EXE LDLIBS LD LDTARGET LDFLAGS XD export SHEXT SHFLAGS LINK_SHARED LINK_SHARED_END VENLIB "$@"
|
и ещё есть вариант для gcc под линуксом: | Код | #!/bin/sh OBJ=".o" CC="gcc" CFLAGS="-g -DXDEBUG=1" RM="rm -f" EXE="" LD="$CC" LDFLAGS="-ldl -lnsl -lpthread -lc" LDTARGET='-o $@' XD="" LDLIBS="-ldl" SHEXT=".so" SHFLAGS="-fPIC" LINK_SHARED='$(CC) -shared -Wl,-export-dynamic -Wl,-soname,$@' LINK_SHARED_END="" VENLIB="-lgssapi_krb5" if [ "$VENLIB" = "" ] ; then echo "***" echo "*** Please edit $0 and define VENLIB to link your" echo "*** GSS-API v2 shared library" echo "***" exit 1 fi export OBJ CC CFLAGS RM EXE LDLIBS LD LDTARGET LDFLAGS XD export SHEXT SHFLAGS LINK_SHARED LINK_SHARED_END VENLIB "$@"
|
Интересует какие в моём случае ключи нужно прописывать для перменных LD,LDFLAGS,LDLIBS,SHFLAGS,LINK_SHARED,LINK_SHARED_END Главный Makefile | Код | ## ## $Id: Makefile,v 1.2 1999/08/24 14:37:57 d019080 Exp $ ## ## (C) Copyright 1999 SAP AG Walldorf ## ## SAP AG DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, ## INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO ## EVENT SHALL SAP AG BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL ## DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR ## PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE ## OF THIS SOFTWARE. ##
MDEFS= CC=cc CFLAGS=-g RM="rm -f" OBJ=.o EXE= LD=cc LDFLAGS=-g LIBS=-ldl XD= LDTARGET='-o $@' TAIL="`uname -s`" BUILD=./build.$(TAIL)
XNAME = sncntlm SRCS = $(XNAME).c
ALL_HDRS= gssapi_2.h platform.h sncgss.h
OBJS= $(XD)$(XNAME)$(OBJ)
TARGET= $(XD)$(XNAME)$(SHEXT)
.c.o: $(CC) $(SHFLAGS) $(CFLAGS) -c $<
### targets
all: $(BUILD) $(MAKE) do-all
clean: $(BUILD) $(MAKE) do-clean
do-all: $(TARGET)
z $(XOBJS): $(SRCS) $(CC) $(SHFLAGS) $(CFLAGS) -c $(SRCS)
$(TARGET): $(OBJS) $(LINK_SHARED) $(LDTARGET) $(LDFLAGS) $(OBJS) $(VENLIB) $(LINK_SHARED_END)
do-clean: $(WIN_CLEAN) $(RM) core $(RM) $(XD)*$(OBJ) $(RM) $(TARGET)
win-clean: del 2>NUL *.pdb del 2>NUL *.idb del 2>NUL *.plg del 2>NUL *.ncb del 2>NUL *.opt del 2>NUL $(XD)*.sbr del 2>NUL $(XD)*.lib del 2>NUL $(XD)*.exp del 2>NUL $(XD)*.pdb del 2>NUL $(XD)*.ilk
### dependencies
$(XD)$(XNAME)$(OBJ): $(XNAME).c $(ALL_HDRS)
|
|