#/****************************************************************************** # # %name: Makefile % # %version: % # %date_modified: % # $Copyright: # # Copyright (c) 2004 Novell, Inc. All Rights Reserved. # # THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND # TREATIES. NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED # COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, # EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED # WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. ANY USE OR EXPLOITATION # OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO # CRIMINAL AND CIVIL LIABILITY.$ # # *****************************************************************************/ .PHONY: all rebuild clean # Source directory name, library name and library directory name APP_NAME = nwautologin # Output Paths ifdef DEBUG OBJ_ROOT = ./Debug FINAL_ROOT = ./Debug else OBJ_ROOT = ./Release FINAL_ROOT = ./Release endif OBJ_DIR := $(OBJ_ROOT) FINAL_DIR := $(FINAL_ROOT) OBJS := $(foreach obj,$(basename $(wildcard *.c)),$(addsuffix .o, $(obj))) # Target file FINAL_TARGET := $(FINAL_DIR)/$(APP_NAME) # Library paths and files # Please note: lib CLN has a circular dependency. In the case of a clean # build, lib NCP must be built first. lib NCP cannot be fully built until # until lib CLN has been built. Build order is NCP, CLN, NCP (or CLN, NCP, CLN) NWLIB_PATH := /opt/novell/lib NWLIB_LIST := clxlnx callnx netlnx ncplnx clnlnx loclnx EXTLIB_PATH := EXTLIB_LIST := # Compiler specific include paths INC_PATH = /opt/novell/include/xplat /opt/novell/CASA_devel/include # Compiler flagsEXTLIB_LIST CFLAGS := -Wall -O2 -D N_PLAT_UNIX -D N_USE_CRT -fshort-wchar \ $(foreach path,$(INC_PATH),-I $(path)) ifdef DEBUG CFLAGS += -g endif # Linker flags #LDFLAGS := $(foreach path,$(NWLIB_PATH) $(EXTLIB_PATH),-L$(path)) \ # $(foreach lib, $(NWLIB_LIST) $(EXTLIB_LIST),-l$(lib)) \ # -Wl,$(foreach path,$(NWLIB_PATH),-rpath $(path)) LDFLAGS := $(foreach path,$(NWLIB_PATH) $(EXTLIB_PATH),-L$(path)) \ $(foreach lib, $(NWLIB_LIST) $(EXTLIB_LIST),-l$(lib)) ifdef DEBUG LDFLAGS += -g endif # Prerequisite and target search paths vpath %.h /opt/novell/include/xplat vpath %.o $(OBJ_DIR) # Main target is library file in final area all: $(FINAL_TARGET) # Helper target/source defines SILENT = @ IGNORE = - _Target = $@ _Source = $< _Sources = $^ _Root = $* # Final target $(FINAL_TARGET): $(OBJS) @echo Linking $(_Target) gcc -o $(_Target) $(LDFLAGS) $(foreach obj,$(OBJS),$(OBJ_DIR)/$(obj)) # build .c files %.o: %.c @echo Compiling $(_Source) gcc -c $(CFLAGS) $(INC_PATHS) $(_Source) -o $(OBJ_DIR)/$(_Target) # Rebuild this project rebuild: clean all # Clean this project clean: @-rm $(FINAL_TARGET) @-rm $(OBJ_DIR)/*.o