개발 툴

make 조건 분기

출처: http://blog.daum.net/english_100/11 7. Makefile의 조건분기 7.1 조건 분기의 예 다음 예는 CC 변수가 ‘gcc’인지 안닌지에 따라 어떤 라이브러리를 링크할 것인가를 결정하는 조건문 예이다. libs_for_gcc = -lgnunormal_libs =foo : $(objects)ifeq ($(CC),gcc)        $(CC) -o $(objects) $(libs_for_gcc)else        $(CC) -o $(objects) $(normal_libs)endif 이 예에는 ifeq, else, endif 등 세가지 지시자가 쓰였다.ifeq 지시자는 조건문의 시작으로 […]

make 조건 분기 더 읽기"

make 명령행 옵션

출처 : http://blog.daum.net/english_100/13 9. make를 실행하는 법   make의 종료 상태는 다음 3가지중 하나를 갖는다.   0 make가 성공적으로 끝났음   2 make 수행중 에러가 발생했음. 그 에러에 대한 메시지를 출력함   1 ‘-q’ 옵션이 사용되었고 어떤 타깃이 아직 최신상태로 갱신되지 않았다고 make가 결정했을 때   9.1 Makefile을 명기하기 위한 옵션   특정 makefile을 명기하기

make 명령행 옵션 더 읽기"

make 암묵적 규칙 사용

출처 : http://blog.daum.net/english_100/14 10. 암묵적 규칙 사용하기 C 소스파일을 C 컴파일러를 이용해 오브젝트 파일을 생성하는 이런 표준적인 작업은 자주 발생하는 일이다. 암묵적 규칙은 사용자가 구체적으로 명기하지 않은 사항에 대해 관례적으로 사용하는 기술을 말한다. 예를 들어 ‘.c’로 끝나는 파일을 만나면 make는 C 컴파일러를 통해 오브젝트 파일을 만드는 암묵적 규칙을 수행한다. 10.1 암묵적 규칙 사용하기 타깃 파일을

make 암묵적 규칙 사용 더 읽기"

make 텍스트 변환 함수

출처 : http://blog.daum.net/english_100/12 8. 텍스트 변환을 위한 함수   8.1 함수 호출 문법   함수 호출은 변수 참조와 비슷하다. 즉 : $(function arguments) 또는 ${function arguments}   여기서 function은 함수 이름으로 make가 제공하는 함수거나 사용자가 직접 만든 함수일 수 있다. arguments는 함수의 인자로서 함수명과는 공백문자나 탭문자 등으로 분리되고 여러개의 인자가 있을 경우는 콤마로 분리한다. 함수의

make 텍스트 변환 함수 더 읽기"

make 변수 문법

출처 : http://blog.daum.net/english_100/10 6. 변수 사용법   변수란 문자열을 함유하고 있는 makefile 내에 정의된 이름이다. 이 값은 타깃이나 prerequisite, recipe 등 makefile의 다른 부분에서 치환되어 쓰이게 된다. 변수나 함수는 recipe 에서만 제외하고 makefile을 읽어들일 때 ‘=’의 오른쪽 부분이나 define 지시자의 몸통부분의 값으로 펼쳐진다. 변수에는 파일이름, 컴파일러에게 건네줄 옵션, 실행할 프로그램, 검색할 디렉토리 등등 상상할 수 있는

make 변수 문법 더 읽기"

CVS 이야기

CVS 이야기 장우현 louis (at) mizi.co.kr 박용주     $Date: 2001/08/21 13:01:41 $ 여 러명이 어떤 공동의 작업을 수행할 때 유용하게 쓸 수 있는 CVS에 관한 이야기를 하고 있습니다. 이 글에서는 아직 CVS 관리에 관한 얘기는 없으며, 순수하게 사용하는 방법만 설명하고 있습니다. 글에 대한 문의사항이 있으면 언제라도 저에게 메일주시기 바랍니다. (참고로 앞으로는 어떻게 될지 모르겠지만,

CVS 이야기 더 읽기"

NSIS-Labels and Relative Jumps

1. Label Label의 경우 조건문에 의해서 실행되는 흐름을 바꿀때 Label이 붙어 있는 곳으로 보낼 수 있다. 주로 IfErrors, IfFileExists, StrCmp 등의 명령어를 사용할때 많이 사용한다. Label의 경우 지역적으로만 인식되므로 같은 function이나 section 내부에서만 사용할 수 있다. 또한 Label은 -, +, !, $ 또는 0-9 로 시작할 수는 없다. Label 을 사용하는 것은 다음과 같이 한다.

NSIS-Labels and Relative Jumps 더 읽기"

NSIS-Variables

1. 변수란? NSIS에서 변수는 항상 전역적인 범위를 가진다. 즉 지역 변수라는게 없다는 얘기다. 그리고 변수명의 길이는 최대 1024 로 제한된다. 이 보다 큰 길이의 변수명이 필요하면 NSIS 소스를 새로 빌드하면 된다. 하지만 일반인이 이 보다 긴 길이의 이름을 쓴다는 것은 의미가 없다. 10자 이상만 길어져도 타이핑 하기가 귀찮은데 말이다… ㅋㅋㅋ 사용자가 변수를 선언할때는 Var 이라는

NSIS-Variables 더 읽기"

NSIS-Sections

지금까지 이용했던 예제를 보면 전부 Section 이라는 항목이 있었을 것이다. function이나 page 처럼 이것도 마찬가지로 SectionEnd로 끝이 나는데, NSIS로 스크립트를 만들게 되면 무조건 한 개 이상의 section이 있어야 한다. 각 section은 명령어를 하나도 포함하지 않아도 되며, 스크립트에 있는 순서데로 실제로 실행이 된다. 그리고 ComponentText가 셋팅되어 있으면, 사용자가 각각의 section을 보여줄 것인지의 여부를 결정할 수 있다.

NSIS-Sections 더 읽기"

NSIS-Pages 에 대하여(2)

PageCallbacks 라는 기능을 알아 보도록 하겠다. PageCallbacks는 PageEx ~ PageExEnd 사이에서만 쓸 수 있는 기능으로 문법은 다음과 같다. ([creator_function] [leave_function]) | ([pre_function] [show_function] [leave_function])위에 보는 것과 같이 두 개의 함수 이름을 쓰면 creator와 leave 함수를 사용하겠다는 것이고, 세 개의 함수 이름을 쓰면 Page에 들어 가기 전에 실행되고 실제 보여 주는 함수 그리고 페이지를 벗어날 때

NSIS-Pages 에 대하여(2) 더 읽기"

NSIS-Pages 에 대하여(1)

NSIS 로 인스톨러를 만들면 각각의 페이지를 만드는 것이다. 각 페이지가 모여서 전체적인 인스톨 프로그램을 구성하게 된다. 주로 많이 접하는 페이지가 라이센스 동의에 대한 페이지나 인스톨할 디렉토리 선택등을 알 수 있다. 물론 사용자 구성/작성 페이지를 추가 할 수도 있다. 스크립트를 사용해서 이런 페이지의 순서를 변경할 수도 있으며, 특정한 정보를 제공할때 한 페이지에만 머무르도록 할 수도 있다.

NSIS-Pages 에 대하여(1) 더 읽기"

NSIS-Example2를 약간 확장해 보자

거창한건 아니고 앞에서 설명했던 Example2 예제에서 인스톨시에 보면 어떤 파일이 인스톨되는지 보여주지를 않는다. 아래 그림같이  “Show details”라는 버튼이 있다. 이걸 누르면 어떤 파일이 어디에 인스톨됐는지 자세하게 보여 주게 된다. 이를 대신해서  인스톨시에 그 내용을 자세하게 자동으로 보여 주게 할려면 어떻게 하면 될까? 명령어 중에 ‘ShowInstDetails’가 있다. 이 명령어에 show 를 주게 되면 인스톨시에 자세하게 어떤

NSIS-Example2를 약간 확장해 보자 더 읽기"

NSIS 예제 코드 설명 - example2.nsi

이제 NSIS를 사용하는데 필요한 내용은 대부분 배웠다. 나머지 내용들은 인스톨 화면인 GUI를 어떻게 원하는 입맛대로 바꾸는지와 MUI(Modern User Interface) 부분이 남았는데, 이런 부분은 실제로 동작(인스톨/언인스톨 동작)을 하는 것들을 분석하고 실행해 보고 나서 뒤에 보기로 하겠다. 가능한 NSIS를 인스톨 했을때 같이 인스톨되는 예제 파일 중에서 분석할 만한 것들을 몇개 골라서 분석해 보겠다. 예제 코드 자체에 주석이

NSIS 예제 코드 설명 - example2.nsi 더 읽기"

NSIS-언인스톨러용 callback functions

언인스톨러용 callback은 알아 보기 쉽도록 되어 있다. callback이므로  시작은 ‘.’으로 하지만, 언인스톨러에서 사용되는 callback이라서 앞에 ‘un’이 전부 붙어 있다. 그 뒤에 이름은 인스톨러용 callback과 같은 것들은 언인스톨러에서 같은 기능을 한다고 여기면 된다. 1. un.onGUIInit 2. un.onInit 3. un.onUninstFailed 4. un.onUninstSuccess 5. un.onGUIEnd 6. un.onRebootFailed 7. un.onUserAbort 인스톨러에서 각각의 callback을 설명했으니 여기서는 생락하겠다.

NSIS-언인스톨러용 callback functions 더 읽기"

NSIS-인스톨러용 Functions/Callback functions

function이라는 것은 비어 있거나 또는 그 이상의 명령문을 가진다는 점에서 Section과 비슷하다. 사용자가 만든 function은 인스톨러에 의해서 직접적으로 불리지 않으며, section에서 call 명령을 이용해서 부른다. callback function은 특정한 이벤트가 발생했을때 인스톨러에 의해서 불려진다. function은 다른 function이나 section의 바깥 부분에서 정의 되어야 한다. 1. Function Commands 1.1 Function  function function_name 새로운 function을 시작할때 사용하는 명령어이다. 만약 function의 이름이

NSIS-인스톨러용 Functions/Callback functions 더 읽기"

NSIS-배포 프로그램 만들기

※ 다운로드 (완전 무료) http://nsis.sourceforge.net/ 설치 후 아래 예제를 따라하면 쉽게 배포 프로그램을 만들 수 있다.   ※ 예제   1. 폴더 생성   1.1 배포 프로그램에 포함되는 파일이 있는 폴더를 만든다.        c:\NSIS Test\SourceFile     1.1.1 폴더를 생성하고 배포 파일을 만든다. 마우스 오른쪽 버튼으로 보이는 메뉴에서 “새로 만들기>텍스트 문서”로 일반 텍스트

NSIS-배포 프로그램 만들기 더 읽기"

NSIS-Script File Format

NSIS는 이미 알고 있듯이 스크립트로 만들어서 컴파일 하는 과정을 거치게 되어 있다. 아주 복잡한 인스톨 프로그램까지 만들 수 있지만, 천리길도 한 걸음부터라고 가장 기본부터 하나씩 정리해볼 생각이다. 누군가에게 도움이 되기를 바라는 마음도 있지만, 나 자신의 알고 있음을 한번 더 정리하는것도 크니 꾸준하게 정리해서 목표는 현재 곰플레이어 인스톨 하는 수준까지 만드는게 목표이다. NSIS를 다운 받자 http://nsis.sourceforge.net/Main_Page

NSIS-Script File Format 더 읽기"

NSIS 에서 MUI 를 이용하여 사용자 페이지 추가하기

NSIS 에서 MUI 를 이용하여 사용자 페이지 추가하기 헬마입니다. 이번에 코덱팩에 몇 가지 사용자페이지들을 추가하면서 혹시 모르시는 분이 계실까봐 간단하게나마 글을 하나 써봅니다. 물론, 저의 형편없는 글솜씨로 더욱 모르시는분이 늘어나실지도 모르겠지만 … ^^   NSIS 는 기본적으로 몇 가지 종류의 정해진 화면을 제공합니다. 이러한 화면들은 설치관리자에서 거의 필수불가결로 쓰일만큼 필수적인 화면들이지요.  하지만, 언제나 이런 화면들만

NSIS 에서 MUI 를 이용하여 사용자 페이지 추가하기 더 읽기"

지도(지형도)를 GPS에 올리기(한글60CSx)기준

가. 시작하기전에    종이지도(지적도포함)를 전자지도화 하기 위해서는 사용소프트웨어만 다를 뿐 거의 모든  회사나 기관들이 저와 대동소이한 방법으로 전자지도를 만들 것으로 생각됩니다. 따라서 저는 많은 GPSER들이 하드웨어 운용방법보다는 전자지도운용에 관한 방법을 잘 몰라 많은 시간을 할애하기에, 조금이나마 지름길을 안내하고자 합니다. 보다 세밀한 기술은 여러분들의 몫으로 남기고, 기본적인 진행순서의 골격만 설명하고자 합니다. 그리고 여기에 사용되는 연장(TOOL)이나 사용결과와

지도(지형도)를 GPS에 올리기(한글60CSx)기준 더 읽기"

위로 스크롤