imake - Online na nuvem

Este é o comando imake que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


imake - Interface de pré-processador C para o utilitário make

SINOPSE


eu faço [ -Ddefinir ] [ -Idir ] [ -Udefinir ] [ -Tmodelo ] [ -f nome do arquivo ] [ -C nome do arquivo ] [
-s nome do arquivo ] [ -e ] [ -v ]

DESCRIÇÃO


Eu faço é usado para gerar Makefiles a partir de um modelo, um conjunto de cpp funções macro, e um
arquivo de entrada por diretório chamado de Imakefile. Isso permite dependências de máquina (como
opções do compilador, nomes de comandos alternativos e fazer regras) para serem mantidas separadas
a partir das descrições dos vários itens a serem construídos.

OPÇÕES


As seguintes opções de linha de comando podem ser passadas para eu faço:

-Ddefinir
Esta opção é passada diretamente para cpp. É normalmente usado para definir o diretório
variáveis ​​específicas. Por exemplo, o X Window System usou este sinalizador para definir TOPDIR
ao nome do diretório que contém o topo da distribuição principal e
CURDIR ao nome do diretório atual, em relação ao topo.

-Ianuário
Esta opção é passada diretamente para cpp. Normalmente é usado para indicar o
diretório no qual o eu faço arquivos de modelo e configuração podem ser encontrados.

-Udefinir
Esta opção é passada diretamente para cpp. É normalmente usado para cancelar a definição de variáveis
ao depurar eu faço arquivos de configuração.

-Tmodelo
Esta opção especifica o nome do arquivo de modelo mestre (que geralmente é
localizado no diretório especificado com -I) usado por cpp. O padrão é
Imake.tmpl.

-f nome do arquivo
Esta opção especifica o nome do arquivo de entrada por diretório. O padrão é
Imakefile.

-C nome do arquivo
Esta opção especifica o nome do arquivo .c que é construído no atual
diretório. O padrão é Imakefile.c.

-s nome do arquivo
Esta opção especifica o nome do fazer arquivo de descrição a ser gerado, mas
fazer não deve ser invocado. Se o nome do arquivo é um traço (-), a saída é escrita
para stdout. O padrão é gerar, mas não executar, um Makefile.

-e Esta opção indica o eu faço deve executar o gerado Makefile. O
o padrão é deixar isso para o usuário.

-v Esta opção indica que eu faço deve imprimir o cpp linha de comando que é
usando para gerar o Makefile.

COMO IT FUNCIONA


Eu faço invoca cpp com qualquer -I or -D sinalizadores passados ​​na linha de comando e passam o nome
de um arquivo contendo as seguintes 3 linhas:

#define IMAKE_TEMPLATE "Imake.tmpl"
#define INCLUDE_IMAKEFILE
#incluir IMAKE_TEMPLATE

onde Imake.tmpl e Imakefile pode ser substituído pelo -T e -f opções de comando,
respectivamente.

O IMAKE_TEMPLATE normalmente lê um arquivo contendo parâmetros dependentes da máquina
(especificado como cpp símbolos), um arquivo de parâmetros específicos do site, um arquivo que define variáveis, um
arquivo contendo cpp funções macro para gerar fazer regras e, finalmente, o Imakefile
(especificado por INCLUDE_IMAKEFILE) no diretório atual. o Imakefile usa a macro
funções para indicar quais metas devem ser construídas; eu faço cuida de gerar o
regras apropriadas.

Eu faço arquivos de configuração contêm dois tipos de variáveis, variáveis ​​imake e make
variáveis. As variáveis ​​imake são interpretadas por cpp quando eu faço é executado. Por convenção
eles são casos mistos. As variáveis ​​make são escritas no Makefile para mais tarde
interpretação por faço. Por convenção, as variáveis ​​do make são maiúsculas.

O arquivo de regras (geralmente denominado Regras de Imake no diretório de configuração) contém um
variedade de cpp funções macro que são configuradas de acordo com a plataforma atual.
Eu faço substitui quaisquer ocorrências da string `` @@ '' por uma nova linha para permitir macros que
gerar mais de uma linha de fazer as regras. Por exemplo, a macro

#define programa_target(programa, lista de objetos) @@
programa: lista de objetos @@
$ (CC) -o $ @ objlist $ (LDFLAGS)

quando chamado com program_target (foo, foo1.o foo2.o) irá expandir para

foo: foo1.o foo2.o
$ (CC) -o $ @ foo1.o foo2.o $ (LDFLAGS)

Eu faço também substitui quaisquer ocorrências da palavra `` XCOMM '' pelo caractere `` # '' para
permite colocar comentários no Makefile sem causar erros de `` diretiva inválida '' de
o pré-processador.

Algum complexo eu faço macros requerem gerado fazer variáveis ​​locais para cada invocação do
macro, geralmente porque seu valor depende dos parâmetros passados ​​para a macro. Tal
variáveis ​​podem ser criadas usando um eu faço variável da forma XVARdefn, Onde n é um
dígito único. Uma única fazer variável será substituída. Ocorrências posteriores do
variável XVARuson será substituído pela variável criada pelo correspondente XVARdefn.

Em sistemas cujo cpp reduz várias tabulações e espaços a um único espaço, eu faço tentativas de
coloque de volta todas as guias necessárias (fazer é muito exigente quanto à diferença entre guias e
espaços). Por este motivo, os dois pontos (:) nas linhas de comando devem ser precedidos por uma barra invertida
(\).

USO COM A X JANELA SISTEMA


O sistema X Window usado eu faço extensivamente até a versão X11R6.9, para ambos
constrói dentro da árvore de origem e software externo. X mudou desde então para GNU autoconf
e automake para seu sistema de construção no X11R7.0 e versões posteriores, mas ainda mantém o imake
para construir programas de software externos existentes que ainda não foram convertidos.

Como mencionado acima, duas variáveis ​​especiais, TOPDIR e CURDIR, estão configurados para fazer referência
arquivos usando nomes de caminho relativos mais fácil. Por exemplo, o seguinte comando é gerado
automaticamente para construir o Makefile no diretório lib / X / (em relação ao topo do
fontes):

% ../.././config/imake -I../.././config
-DTOPDIR = ../../. -DCURDIR =. / Lib / X
Ao construir programas X fora da árvore de origem, um símbolo especial UseInstalado é definido
e TOPDIR e CURDIR são omitidos. Se os arquivos de configuração foram devidamente
instalado, o script xmkmf(1) pode ser usado.

INPUT ARQUIVOS


Aqui está um resumo dos arquivos lidos por eu faço como usado por X. O recuo mostra o que
os arquivos incluem quais outros arquivos.
Variáveis ​​genéricas Imake.tmpl
site.def site-specific, BeforeVendorCF definido
* .cf específico da máquina
* Regras da biblioteca compartilhada Lib.rules
site.def site-specific, AfterVendorCF definido
Regras Imake.rules
Variáveis ​​específicas do X de Project.tmpl
* Variáveis ​​da biblioteca compartilhada Lib.tmpl
Imakefile
Regras da biblioteca Library.tmpl
Regras do servidor Server.tmpl
Regras multi-thread de Threads.tmpl

Observe que site.def é incluído duas vezes, uma antes do * .cf arquivo e depois.
Embora a maioria das personalizações do site deva ser especificada após o * .cf arquivo, alguns, como
a escolha do compilador, precisa ser especificado antes, porque outras configurações de variáveis ​​podem
dependem deles.

A primeira vez site.def está incluído, a variável BeforeVendorCF é definida e o
segunda vez, a variável AfterVendorCF é definida. Todo o código em site.def deveria estar dentro
um #ifdef para um desses símbolos.

Use imake online usando serviços onworks.net



Programas online mais recentes para Linux e Windows