五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Makefile out-of-source

2023-03-05 11:22 作者:小粉絲8  | 我要投稿

# Makefile for top dir

# $(call version_number,1.2.3)

# major.minor.patch

# libtool manual 4.2: -version-number

define version_number

? $(MAKE) -C $@ soname=lib$@.so.$(word 1,$(subst ., ,$(1)))

? @ cp $(OBJDIR)/$@/$@ $(OBJDIR)/$@/lib$@.so.$(1)

? @ cd $(OBJDIR)/$@; ln -f -s $(OBJDIR)/$@/lib$@.so.$(1) $(OBJDIR)/$@/lib$@.so.$(word 1,$(subst ., ,$(1))); cd ..

? @ cd $(OBJDIR)/$@; ln -f -s $(OBJDIR)/$@/lib$@.so.$(1) $(OBJDIR)/$@/lib$@.so; cd ..

endef

# make BUILD_DIR=build

ifndef BUILD_DIR

export OBJDIR = $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/build

else

export OBJDIR = $(abspath $(BUILD_DIR))

endif

SUBDIRS = main foo

all : $(SUBDIRS)

install : $(SUBDIRS)

main : foo

main : ; $(MAKE) -C $@

foo : ; $(call version_number,1.2.3)

# make DESTDIR=~/foo install

install :

? install -d "$(DESTDIR)/usr/local/bin"

? install -d "$(DESTDIR)/usr/local/lib"

? install -m 0755 $(OBJDIR)/main/main "$(DESTDIR)/usr/local/bin"

? install -m 0755 $(OBJDIR)/foo/*.so* "$(DESTDIR)/usr/local/lib"

clean : ; -rm -fr $(OBJDIR)

.PHONY : $(SUBDIRS) all install clean


---


# Makefile for subdir

# build shared library with -fPIC, -shared

CFLAGS ? ?= # -g -O3 -fPIC # CXXFLAGS for .cpp

CPPFLAGS ?= -MMD -MP -I../foo

LDFLAGS ? = -L$(OBJDIR)/foo # -shared

LDLIBS ? ?= -lfoo

#CC ? ? ? = $(CXX) # link with CXX for .cpp

LDFLAGS ?+= -Wl,-rpath,$(OBJDIR)/foo

LDFLAGS ?+= -Wl,-rpath,'$$ORIGIN/../lib'

#LDFLAGS += -Wl,-soname,$(soname)

# make # NDEBUG=1

ifdef NDEBUG

CPPFLAGS += -DNDEBUG

CFLAGS ? += -O3 # .cpp

else

CFLAGS ? += -g # .cpp

LDFLAGS ?+= -fsanitize=address

endif

all : $(OBJDIR)/main/main # foo

$(OBJDIR)/main/main : $(OBJDIR)/main/$(patsubst %.c,%.o,$(wildcard *.c))

? $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ ?# CXX for .cpp

$(OBJDIR)/main/%.o : %.c | $(OBJDIR)/main

? $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< ?# CXX CXXFLAGS for .cpp

$(OBJDIR)/main: ; mkdir -p $(OBJDIR)/main

-include $(OBJDIR)/main/*.d

clean : ; -rm -fr $(OBJDIR)

.PHONY : all clean


---


# Makefile for subdir

# build shared library with -fPIC, -shared

CFLAGS ? ?= -fPIC # -g -O3 # CXXFLAGS for .cpp

CPPFLAGS ?= -MMD -MP # -I../bar

LDFLAGS ? = -shared # -L$(OBJDIR)/bar

LDLIBS ? ?= # -lbar

#CC ? ? ? = $(CXX) # link with CXX for .cpp

LDFLAGS ?+= -Wl,-rpath,$(OBJDIR)/bar

LDFLAGS ?+= -Wl,-rpath,'$$ORIGIN/../lib'

LDFLAGS ?+= -Wl,-soname,$(soname)

# make # NDEBUG=1

ifdef NDEBUG

CPPFLAGS += -DNDEBUG

CFLAGS ? += -O3 # .cpp

else

CFLAGS ? += -g # .cpp

LDFLAGS ?+= -fsanitize=address

endif

all : $(OBJDIR)/foo/foo # bar

$(OBJDIR)/foo/foo : $(OBJDIR)/foo/$(patsubst %.c,%.o,$(wildcard *.c))

? $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ ?# CXX for .cpp

$(OBJDIR)/foo/%.o : %.c | $(OBJDIR)/foo

? $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< ?# CXX CXXFLAGS for .cpp

$(OBJDIR)/foo: ; mkdir -p $(OBJDIR)/foo

-include $(OBJDIR)/foo/*.d

clean : ; -rm -fr $(OBJDIR)

.PHONY : all clean


---


#include <stdio.h>

#include <sanitizer/lsan_interface.h>

#include <signal.h>

#include <assert.h>

#include "foo.h"

void handlerCont(int signum) {

? printf("SIGCONT %d\n", signum);

#ifndef NDEBUG

? __lsan_do_recoverable_leak_check();

#endif

}

int main() {

? signal(SIGCONT, handlerCont); // kill -CONT 123 # pid

? printf("main\n");

? foo();

? int a[1024];

? int n = 10240;

? a[n] = 1;

? assert(0);

}


Makefile out-of-source的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
鸡东县| 阿拉尔市| 盘山县| 鸡西市| 洮南市| 盐边县| 太仓市| 双牌县| 鄢陵县| 含山县| 玉溪市| 贡嘎县| 连平县| 盈江县| 恩平市| 旌德县| 鄄城县| 静乐县| 华坪县| 汤阴县| 宿松县| 龙游县| 建昌县| 仁布县| 茌平县| 甘泉县| 武城县| 固原市| 商河县| 信宜市| 闸北区| 凉城县| 东兰县| 滦南县| 平原县| 西华县| 兴海县| 偏关县| 行唐县| 资溪县| 秀山|