我有一个关于tiobench的以下Makefile。我写的。问题是,当我执行make all
时,这不会让我进入安装目录。为什么?
# Makefile for tiotest
#include $(shell while [ "`pwd`" != / -a \! -r options.mk ]; do cd .. ; done ; pwd )/options.mk
#CFLAGS=-O3 -fomit-frame-pointer -Wall
CFLAGS=-O2 -Wall
#DEFINES=-DUSE_MMAP
#-DUSE_MADVISE
# This enables support for 64bit file offsets, allowing
# possibility to test with files larger than (2^31) bytes.
#DEFINES=-DLARGEFILES
#DEFINES=
MODULE=tiotest
PROJECT=tiobench
# do it once instead of each time referenced
VERSION=$(shell egrep "tiotest v[0-9]+.[0-9]+" tiotest.c | cut -d " " -f 7 | sed "s/v//g")
DISTNAME=$(PROJECT)-$(VERSION)
INSTALL := $(CURDIR)/install
INSTALL_DIR := $(INSTALL)/test/bin
BOM := $(CURDIR)/BOM
BUILDRESULTS := $(CURDIR)/buildresults
MODULE := tiotest
build: $(MODULE)
crc32.o: crc32.c crc32.h
$(CC) -c $(CFLAGS) $(DEFINES) crc32.c -o crc32.o
tiotest.o: tiotest.c tiotest.h crc32.h crc32.c Makefile
$(CC) -c $(CFLAGS) $(DEFINES) tiotest.c -o tiotest.o
$(MODULE): tiotest.o crc32.o
$(CC) -o $(MODULE) tiotest.o crc32.o -lpthread
@echo
@echo "./tiobench.pl --help for usage options"
@echo
configure:
clean: clean-install
rm -f tiotest.o crc32.o $(MODULE) core
distclean: clean
clean-install:
-rm -rf $(INSTALL) $(BUILDRESULTS)
install: clean-install build
mkdir -p $(INSTALL_DIR)
cp $(MODULE) $(INSTALL_DIR)
#$(STRIP) $(INSTALL_DIR)/$(MODULE)
@echo install tree is in $(INSTALL)
buildresults: install
mkdir $(BUILDRESULTS)
cd install && tar cf - `cat $(BOM)` | (cd $(BUILDRESULTS) ; tar xfp -)
@echo buildresults tree is in $(BUILDRESULTS)
all: distclean configure build install buildresults
.PHONY: build clean-install install buildresults clean distclean all
答案 0 :(得分:2)
命令在子shell中运行。它们不能影响运行make all