📄 makefile
字号:
############################################################################## # makefile for quaternion lib################################################################################ common definitions#CC = ccCFLAGS = -O $(INCLUDE_FLAGS)OPT_CFLAGS = -O $(INCLUDE_FLAGS)MAKEFILE = makefileQUAT_LIB = libquat.a# flagsINCLUDE_FLAGS = -I.LDFLAGS = -L.LINT_FLAGS = $(INCLUDE_FLAGS)############################################################################### for building library##############################################################################lib: libquat.a############################################################################### example/test programs##############################################################################TEST_FILES = eul qmat qmult qxform qmake timer qpmultall : rm $(TEST_FILES) $(MAKE) $(TEST_FILES)## timer- time some operation#timer : timer.c $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $@.c -lquat -lm## eul- eul to quat#eul : eul.c $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $@.c -lquat -lm## qmult- multiply 2 quats#qmult : qmult.c $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $@.c -lquat -lm## qpmult- multiply 2 pmatrices#qpmult : qpmult.c $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $@.c -lquat -lm## qxform- xform a vec#qxform : qxform.c $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $@.c -lquat -lm## qmat- matrix to quaternion #qmat : qmat.c $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $@.c -lquat -lm## qmake- tests q_make#qmake : qmake.c $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $@.c -lquat -lm############################################################################### rules and definitions for making quaternion library##############################################################################QUAT_INCLUDES = quat.h pdefs.hQUAT_C_FILES = quat.c matrix.c vector.c xyzquat.cQUAT_OBJ_FILES = $(QUAT_C_FILES:.c=.o)$(QUAT_LIB) : $(QUAT_OBJ_FILES) $(MAKEFILE) @echo "Building $@..." ar ruv $(QUAT_LIB) $(QUAT_OBJ_FILES) -ranlib $(QUAT_LIB)$(QUAT_OBJ_FILES) : $(QUAT_INCLUDES) pdefs.h############################################################################### miscellaneous rules##############################################################################lint : lint $(LINT_FLAGS) $(COORD_FILES)# rcs controlRCS_TMP = .rcs.tmpRCS_FILES = $(QUAT_C_FILES) $(QUAT_INCLUDES)## this ugly rule is a hack to get around the constant prompting "re-use the # same log message?"## we cat messge into a temp file, cat a quoted version into a shell var# (eval evaluates what's in the quotes), then use a quoted version as# an arg to "ci"#ci: @echo "Enter log message for ALL files (terminate with ^D):" @cat > $(RCS_TMP) @echo 'Doing check-in; this may take a while...' @( eval msg='`cat $(RCS_TMP)`'; \ /usr/local/bin/ci -f -u -q -m"$$msg" $(RCS_FILES) ) @echo 'Done.' @/bin/rm -f $(RCS_TMP)# check outco : @echo "Checking out all files..." @-co -l -q $(RCS_FILES) @echo "Done."# check in a copy, then check out againcio : @$(MAKE) ci @$(MAKE) coallclean : -/bin/rm -f *.o *.a *~ *.j foo a.out $(TEST_FILES)clean : -/bin/rm -f *.o *.a *~ *.j foo a.out $(TEST_FILES)# install into lib dir# do rm -f followed by mv here because mv -f in this instance causes# a seg fault on the sun.install : $(MAKE) clean $(MAKE) "CFLAGS=$(OPT_CFLAGS)" $(QUAT_LIB) rm -f $(LIB_DIR)/$(QUAT_LIB) mv $(QUAT_LIB) $(LIB_DIR) -ranlib $(LIB_DIR)/$(QUAT_LIB) @(echo -n "Replace includes? [yn] " ; \ read ans ; \ if [ $$ans = "y" ] ; \ then \ ( echo "includes = $(QUAT_INCLUDES)" ; \ echo "Moving old includes to 'old' subdirectory..." ; \ cd $(INCLUDE_DIR); \ for fn in $(QUAT_INCLUDES) ; \ do \ echo -n $$fn ; \ if [ -f $$fn ] ; \ then \ echo -n ' - moved' ; \ /bin/mv -f $$fn old ; \ fi ; \ echo '' ; \ done ) ; \ echo "Copying new includes..." ; \ cp $(QUAT_INCLUDES) $(INCLUDE_DIR) ; \ else \ echo 'Includes not replaced.' ; \ fi ) $(MAKE) clean# install into beta lib dirbeta : $(MAKE) $(QUAT_LIB) -mv $(QUAT_LIB) $(BETA_LIB_DIR) -ranlib $(BETA_LIB_DIR)/$(QUAT_LIB) -( cd $(BETA_INCLUDE_DIR); \ /bin/rm -f $(QUAT_INCLUDES) ) cp $(QUAT_INCLUDES) $(BETA_INCLUDE_DIR)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -