'프로그램 사용/make, configure'에 해당되는 글 31건

  1. 2023.08.28 makefile 매크로(?)
  2. 2023.08.16 make 조건식
  3. 2022.12.07 cmake ninja, cmake 옵션주기
  4. 2021.01.20 cmake 옵션 확인
  5. 2021.01.19 cmake 빌드 에러시
  6. 2016.06.16 make order
  7. 2016.06.08 make /bin/sh: 1: pushd: not found 에러
  8. 2016.06.08 make 기본셸
  9. 2016.06.04 makefile := = 차이점
  10. 2015.12.18 make 의존성 파일?

$# 인자의 갯수

$@ 현재 타겟의 이름 (나열)

$* 현재 타겟의 이름 (하나로)

$^ 현재 타겟의 종속 항목 리스트

[링크 : https://yooloo.tistory.com/m/131]

[링크 : https://bowbowbow.tistory.com/12]

'프로그램 사용 > make, configure' 카테고리의 다른 글

make 조건식  (0) 2023.08.16
cmake ninja, cmake 옵션주기  (0) 2022.12.07
cmake 옵션 확인  (0) 2021.01.20
cmake 빌드 에러시  (0) 2021.01.19
make order  (0) 2016.06.16
Posted by 구차니

지시자. 그러니까 아래서 make foo로 시작하는 부분에 대해서는

조건식이 없는걸로 봐서는 그 이전에 미리 조건식에 의해서 분기를 처리하고

그 아래에서는 조건식 없이 해야 하는건가?

 

libs_for_gcc = -lgnu
normal_libs =

ifeq ($(CC),gcc)
  libs=$(libs_for_gcc)
else
  libs=$(normal_libs)
endif

foo: $(objects)
        $(CC) -o foo $(objects) $(libs)

[링크 : https://www.gnu.org/software/make/manual/html_node/Conditional-Example.html]

    [링크 : https://www.gnu.org/software/make/manual/html_node/Conditionals.html]

 

 

 

'프로그램 사용 > make, configure' 카테고리의 다른 글

makefile 매크로(?)  (0) 2023.08.28
cmake ninja, cmake 옵션주기  (0) 2022.12.07
cmake 옵션 확인  (0) 2021.01.20
cmake 빌드 에러시  (0) 2021.01.19
make order  (0) 2016.06.16
Posted by 구차니

-G Ninja 하면 Makefile 이 생성되지 않고 build.ninja만 생성된다.

빌드시 자잘한(?) 옵션은 -Doption=value 식으로 주면 ok

cmake.exe -G "Ninja" -DBUILD_TESTING=ON -DCMAKE_CXX_COMPILER=ccache

[링크 : https://github.com/LibVNC/libvncserver/issues/448]

'프로그램 사용 > make, configure' 카테고리의 다른 글

makefile 매크로(?)  (0) 2023.08.28
make 조건식  (0) 2023.08.16
cmake 옵션 확인  (0) 2021.01.20
cmake 빌드 에러시  (0) 2021.01.19
make order  (0) 2016.06.16
Posted by 구차니

cmake 시에 -D 플래그로 옵션을 활성화 가능한데

그 플래그 목록을 확인하는 cmake 옵션은 -LA

$ cmake -LAH

 

openCV-4.5.1 에서 하다 보니 무조건 다른 디렉토리에서 빌드 하라고 나오는지라

한번은 cmake 하고 ccmake로 볼 수 있는건지 확인이 좀 필요할 듯.

sudo apt-get install cmake-curses-gui
ccmake ..

[링크 : https://stackoverflow.com/questions/16851084/how-to-list-all-cmake-build-options-and-their-default-values]

'프로그램 사용 > make, configure' 카테고리의 다른 글

make 조건식  (0) 2023.08.16
cmake ninja, cmake 옵션주기  (0) 2022.12.07
cmake 빌드 에러시  (0) 2021.01.19
make order  (0) 2016.06.16
make /bin/sh: 1: pushd: not found 에러  (0) 2016.06.08
Posted by 구차니

어우.. cmake 너무 시르다..

빌드 하는데 안되면 CMakeCache.txt 파일 삭제하고 재시도 하면 된다.

 

[링크 : https://stackoverflow.com/questions/45518317/in-source-builds-are-not-allowed-in-cmake]

'프로그램 사용 > make, configure' 카테고리의 다른 글

cmake ninja, cmake 옵션주기  (0) 2022.12.07
cmake 옵션 확인  (0) 2021.01.20
make order  (0) 2016.06.16
make /bin/sh: 1: pushd: not found 에러  (0) 2016.06.08
make 기본셸  (0) 2016.06.08
Posted by 구차니

pipeline 다음 룰은 순서대로

이걸 이용하면 병렬처리 룰도 간단해질지도?



release:

    $(MAKE) clean

    $(MAKE) test1


release: | clean test1

[링크 : http://stackoverflow.com/questions/8496135/parallel-makefile-require-depency-ordering]


Occasionally, however, you have a situation where you want to impose a specific ordering on the rules to be invoked without forcing the target to be updated if one of those rules is executed. In that case, you want to define order-only prerequisites. Order-only prerequisites can be specified by placing a pipe symbol (|) in the prerequisites list: any prerequisites to the left of the pipe symbol are normal; any prerequisites to the right are order-only:


targets : normal-prerequisites | order-only-prerequisites

[링크 : https://www.gnu.org/software/make/manual/html_node/Prerequisite-Types.html]


'프로그램 사용 > make, configure' 카테고리의 다른 글

cmake 옵션 확인  (0) 2021.01.20
cmake 빌드 에러시  (0) 2021.01.19
make /bin/sh: 1: pushd: not found 에러  (0) 2016.06.08
make 기본셸  (0) 2016.06.08
makefile := = 차이점  (0) 2016.06.04
Posted by 구차니

가장 간편(?)한 건...

$ sudo ln -s /bin/bash /bin/sh 


그런데 이렇게 건드리는게 옳은건가...


[링크 : https://forums.xilinx.com/.../Trouble-configuring-petalinux-2013-10-bin-sh-1-pushd-not-found/td-p/399843]

'프로그램 사용 > make, configure' 카테고리의 다른 글

cmake 빌드 에러시  (0) 2021.01.19
make order  (0) 2016.06.16
make 기본셸  (0) 2016.06.08
makefile := = 차이점  (0) 2016.06.04
make 의존성 파일?  (0) 2015.12.18
Posted by 구차니

SHELL 변수로 설정되지 않으면 /bin/sh가 되므로

bash에서 지원하는 popd pushd 등이 봉인..

환경 변수 등을 끌어 가지 않으므로.. 결론은 Makefile 별로 설정을 해주어야 한다.



5.3.2 Choosing the Shell

The program used as the shell is taken from the variable SHELL. If this variable is not set in your makefile, the program /bin/sh is used as the shell. The argument(s) passed to the shell are taken from the variable .SHELLFLAGS. The default value of .SHELLFLAGS is -c normally, or -ec in POSIX-conforming mode.

Unlike most variables, the variable SHELL is never set from the environment. This is because the SHELL environment variable is used to specify your personal choice of shell program for interactive use. It would be very bad for personal choices like this to affect the functioning of makefiles. See Variables from the Environment.

Furthermore, when you do set SHELL in your makefile that value is not exported in the environment to recipe lines that make invokes. Instead, the value inherited from the user’s environment, if any, is exported. You can override this behavior by explicitly exporting SHELL (see Communicating Variables to a Sub-make), forcing it to be passed in the environment to recipe lines.

[링크 : https://www.gnu.org/software/make/manual/html_node/Choosing-the-Shell.html]

    [링크 : https://www.gnu.org/software/make/manual/html_node/Variables_002fRecursion.html]

'프로그램 사용 > make, configure' 카테고리의 다른 글

make order  (0) 2016.06.16
make /bin/sh: 1: pushd: not found 에러  (0) 2016.06.08
makefile := = 차이점  (0) 2016.06.04
make 의존성 파일?  (0) 2015.12.18
make 암시적 룰  (0) 2015.12.18
Posted by 구차니


 In short, variables defined with := are expanded once, but variables defined with = are expanded whenever they are used.

[링크 : http://stackoverflow.com/.../whats-the-difference-between-and-in-makefile]


Simply expanded variables are defined by lines using ‘:=’ or ‘::=’ (see Setting Variables). Both forms are equivalent in GNU make; however only the ‘::=’ form is described by the POSIX standard (support for ‘::=’ was added to the POSIX standard in 2012, so older versions of make won’t accept this form either).

[링크 : http://www.gnu.org/software/make/manual/html_node/Flavors.html#Flavors]


https://www.gnu.org/software/make/manual/html_node/Setting.html#Setting


'프로그램 사용 > make, configure' 카테고리의 다른 글

make /bin/sh: 1: pushd: not found 에러  (0) 2016.06.08
make 기본셸  (0) 2016.06.08
make 의존성 파일?  (0) 2015.12.18
make 암시적 룰  (0) 2015.12.18
make jobserver unavailable  (0) 2015.12.16
Posted by 구차니

gcc -M을 통해서 해당 소스가 끌어와야 하는 헤더들의 목록을 얻어낼수 있다.

이걸 이용하여 역으로

make 파일에서 사용해야 하는 헤더들의 목록을 생성해 낼 수 있고

이걸 make dep나 make depend를 통해서 수행하게 된다.


생각해보니.. ifdef로 된거.. option 파일이 아닌

-D 인자를 통해서 gcc -M -Dflag 해주면... 외부에서 소스변경없이 구현이 가능해져서 더 편하려나?


[링크 : http://developinghappiness.com/?p=174]

    [링크 : http://developinghappiness.com/?page_id=222]


[링크 : http://linux.die.net/man/1/gccmakedep]

'프로그램 사용 > make, configure' 카테고리의 다른 글

make 기본셸  (0) 2016.06.08
makefile := = 차이점  (0) 2016.06.04
make 암시적 룰  (0) 2015.12.18
make jobserver unavailable  (0) 2015.12.16
make 아카이브  (0) 2015.12.14
Posted by 구차니