- #-------------------------------------------------------------------------
- # Copyright 2006 Kyle Turner.
- #
- # License is hereby granted to use this software and distribute it
- # freely, as long as this copyright notice is retained and modifications
- # are clearly marked.
- #
- # ALL WARRANTIES ARE HEREBY DISCLAIMED.
- #
- # $Id: //guest/kyle_turner/perforce/resolve/Makefile#1 $
- #-------------------------------------------------------------------------
- #
- # GNUMakefile to build P4 API based applications on Linux and Windows.
- #
- # Usage: make P4API=<p4dir>
- #
- # Common modifications:
- #
- # P4API - Set to path where you have extracted the p4api for
- # the platform.
- #
- # OS - Currently this file supports Linux/g++ and Windows/.Net
- # with a very simplistic use of "uname". This may need
- # some modifications depending on the operating system
- # you are running.
- #
- # CPP - Modify for you compiler. On windows you will need to
- # add several directories to your PATH environment
- # variable so the linker finds the correct libraries.
- #
- #-------------------------------------------------------------------------
- TARGET := resolve
- SOURCES := \
- help.cpp \
- p4api.cpp \
- resolve.cpp
- P4API := ../p4api
- P4LIBS := libclient librpc libsupp
- OS := $(shell uname)
- #-------------------------------------------------------------------------
- # LINUX
- #-------------------------------------------------------------------------
- ifeq ($(OS), Linux)
- OBJS := $(SOURCES:.cpp=.o)
- CPP := $(shell if [ -e /usr/bin/g++32 ]; then echo g++32; else echo g++; fi)
- CPPFLAGS := -pedantic -W -Wall \
- -Winline -Wformat -Wshadow -Wno-long-long \
- -Dconst_char="const char"
- P4LIBS := $(foreach L,$(P4LIBS),$(P4API)/$L.a)
- SYSLIBS :=
- LINK = $(CPP) -o $@ $(OBJS) $(P4LIBS) $(SYSLIBS)
- %.o: %.cpp
- $(CPP) -c $(CPPFLAGS) -I $(P4API) $<
- #-------------------------------------------------------------------------
- # WINDOWS
- #-------------------------------------------------------------------------
- else
- TARGET := $(TARGET).exe
- OBJS := $(SOURCES:.cpp=.obj)
- CPP := cl.exe
- CPPFLAGS := /DOS_NT /MT /DCASE_INSENSITIVE /nologo
- P4API := $(subst /,\\,$(P4API))
- P4LIBS := $(foreach L,$(P4LIBS),$(P4API)\\$L.lib)
- SYSLIBS := oldnames.lib \
- kernel32.lib \
- wsock32.lib \
- advapi32.lib
- LINK = $(CPP) -o $@ $(OBJS) /link $(P4LIBS) $(SYSLIBS)
- %.obj: %.cpp
- $(CPP) -c $(CPPFLAGS) /I$(P4API) $<
- endif
- #-------------------------------------------------------------------------
- # TARGETS
- #-------------------------------------------------------------------------
- .PHONY: default clean
- default: $(TARGET)
- $(TARGET): $(OBJS)
- $(LINK)
- clean:
- -$(RM) $(TARGET) $(OBJS)
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 5435 | Kyle Turner | Initial version of "p4 resolve" extensions using C++ P4API. Extensions allow users... to give more weight to the external merge program specified by the environment variable $P4MERGE. See README.txt for more information. « |
19 years ago |