EnglishFrenchSpanyol

Ad


Favicon OnWorks

makepp_incompatibilities - Dalam Talian di Awan

Jalankan makepp_incompatibilities dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan makepp_incompatibilities yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

JADUAL:

NAMA


makepp_incompatibilities -- Ketakserasian antara makepp dan GNU make

DESCRIPTION


Makepp direka untuk sedekat mungkin dengan GNU make
(<http://www.gnu.org/software/make/manual/make.html>). GNU autotools
(<http://www.gnu.org/software/automake/manual/automake.html>), CMake
(<http://www.cmake.org/>), Prabuatan (http://industriousone.com/premake> dan lihat komen
di bawah) atau sistem binaan warisan buatan tangan harus boleh dibina dengan makepp. Ini sangat
anda boleh sama ada memindahkan projek dengan mudah. Atau jika anda tidak mahu menikmati semuanya
kelebihan makepp (cth supaya orang lain masih boleh membina projek anda dengan GNU make) semasa anda
keuntungan daripada kelebihan kebolehpercayaan untuk pembangunan anda.

Walau bagaimanapun, kerana perbezaan dalam falsafah, beberapa GNU make's atau POSIX make's
(<http://pubs.opengroup.org/onlinepubs/009695399/utilities/make.html>) ciri tidak boleh
disokong. Sebilangan kecil belum dilaksanakan kerana tidak sempat. Kebanyakannya
perbezaan dari GNU membuat agak teknikal dan jarang menyebabkan masalah. Malangnya
penyelesaian untuk kekurangan produk tradisional menjadi semakin kompleks,
dan sedang memberi makepp masa yang sukar.

Secara ringkas, jika ia tidak dibina di luar kotak, cuba:

makepp --no-warn makepp_simple_concatenation=1 makepp_percent_subdirs=1 \
--build-check=target_newer --peraturan-peluang-terakhir --no-remake-makefiles

Jika itu berjaya, anda boleh cuba menghapuskan hujah tersebut satu persatu. Tetapi jika itu gagal,
cuba tambah:

--tradisional-rekursif-buat

Jika itu juga gagal, sistem binaan memerlukan sedikit tweaker untuk bekerjasama dengan makepp. Malah
jika beberapa pilihan yang diterangkan di sini menjadikan sesuatu boleh dibina, ia masih disyorkan untuk menyesuaikan diri
perkara sedikit, jadi mereka menjadi serasi di luar kotak dengan kedua-dua jenama.

Memaksa lebih POSIX or GNU membuat keserasian


Berikut ialah beberapa kemungkinan baris arahan untuk mendapatkan banyak sistem binaan lama untuk berfungsi
tanpa pengubahsuaian. Mereka menyebabkan makepp meniru tingkah laku GNU make dengan tepat.

Keserasian melalui yang pilihan: "--build-check=target_newer"
Secara lalai, makepp akan cuba membina semula semua sasaran jika ada kebergantungan
berubah sejak binaan terakhir, atau jika arahan telah berubah (lihat makepp_build_check untuk
butiran). Ini biasanya yang anda mahukan. Kadang-kadang, bagaimanapun, anda tidak mahu sasaran
untuk dibina semula jika ia telah diubah suai selain daripada kawalan makepp (cth, dengan menyunting
itu, atau dengan menjalankan program secara manual untuk membuat fail). Anda boleh memaksa makepp untuk menggunakan
algoritma buat tradisional, yang hanya membina semula jika mana-mana sasaran lebih baharu daripada
dependencies, dengan menambah pilihan ini pada baris arahan.

Keserasian melalui yang pilihan: "--dont-build=config.status"
Terdapat pakej yang cuba mengkonfigurasi sendiri sendiri, atau melakukan perkara lain, yang gmake
mengabaikan melainkan diminta, seperti:

config.status : konfigurasi
./config.status --semak semula

configure : configure.in aclocal.m4
autokonfigurasi

Kebanyakan orang tidak memasang "autoconf", jadi melakukan segala-galanya dengan teliti
peraturan, seperti yang dilakukan oleh makepp, akan gagal. Pilihan ini menghalangnya, jika anda mengetahui apa
bukan untuk membina.

Keserasian melalui yang pilihan: "--peraturan-peluang-terakhir"
Peraturan lalai (peraturan corak tanpa kebergantungan corak) biasanya tidak disokong.
Makepp membuat instantiate semua peraturan berdasarkan fail sedia ada, supaya ia menyedari setiap
fail yang boleh dihasilkan. Malangnya dengan cara ini ia tidak tahu bagaimana untuk membuat instantiate sesuatu corak
peraturan tanpa pergantungan corak. Mekanisme :last_chance membetulkan sebahagiannya.
Jika ini cukup bagus untuk fail buatan lama, pilihan ini membolehkan menghidupkannya secara global.

Keserasian melalui yang pilihan: "--tidak-beri amaran"
Yang ini tidak menambah baik hasilnya. Makepp akan memberikan mesej amaran untuk banyak perkara
yang dibuat oleh Unix tradisional menerima tanpa tersentak. Ini kerana terdapat
cara yang lebih baik untuk melakukannya dengan makepp. Jika amaran ini mengganggu anda, anda boleh mematikannya
dengan pilihan ini.

Keserasian melalui yang pilihan: "--hibrid-rekursif-buat"
Seruan rekursif untuk membuat sering dianggap sebagai amalan yang tidak selamat (lihat "Lebih baik
sistem untuk binaan hierarki" dalam makepp untuk butiran), tetapi ia sangat biasa dalam
makefiles sedia ada. Makepp menyokong make rekursif untuk keserasian ke belakang; untuk yang baru
makefiles, adalah lebih baik untuk menggunakan pernyataan "load_makefile", atau tersirat makepp
mekanisme pemuatan makefile.

Untuk dapat menggunakan repositori untuk binaan varian, dan untuk membantu membuat rekursif
seruan buat lebih selamat, makepp biasanya sebenarnya tidak memanggil dirinya secara rekursif
walaupun anda memberitahunya. Sebaliknya, subproses berkomunikasi dengan proses induk, dan
binaan sebenar dilakukan oleh proses induk.

Ini berfungsi dalam kebanyakan kes, tetapi anda tidak boleh menggunakan beberapa fail make dari yang sama
direktori, contohnya, yang berikut tidak akan berfungsi:

sasaran: tanggungan
$(MAKE) -f other_makefile sasaran

Dalam kes ini, makepp menyedari ia sedang memuatkan fail make ke-2 dan mengadu. Dengan pilihan ini
sebaliknya ia akan kembali kepada cara tradisional membina daripada makefiles tambahan
proses makepp yang berasingan setiap satu.

Nota: Secara teknikal memuatkan beberapa fail make tidak akan menjadi masalah, tetapi mereka biasanya mempunyai
nama sasaran palsu yang sama. Mengasingkan itu bermakna reka bentuk semula lengkap makepp
dalaman. Walau bagaimanapun, ini akan berfungsi, tetapi ia tidak setara:

sasaran: tanggungan
cd subdir && $(MAKE) -f other_makefile sasaran

Keserasian melalui yang pilihan: "--buatan-rekursif-tradisional"
Kadangkala pilihan sebelumnya tidak mencukupi, terutamanya jika seruan rekursif digunakan
pilihan bercanggah. Makepp hanya menggunakan satu set pilihan global, jadi submake tidak
dibenarkan untuk mengubah suainya, kerana itu juga berkaitan dengan fail buatan lain.

Menambah pilihan ini pada baris arahan, mempunyai kesan sampingan yang tidak diingini berikut:

· Pembuatan rekursif tidak dilaksanakan secara dalaman secara selari, walaupun induk melakukannya.
Tidak seperti gmake tiada penyelarasan keseluruhan bilangan proses. Ini akan
tidak dilaksanakan kerana cara kerja ini bukan matlamat reka bentuk makepp.

· Proses membuat rekursif tidak tahu apa-apa tentang repositori.

· Setiap proses membuat rekursif menghasilkan fail log sendiri, dalam direktori ia dipanggil
dalam, bukannya menghasilkan satu fail log untuk keseluruhan binaan.

· Memandangkan makepp biasanya membina lebih daripada tradisional, maka ia difikirkan perlu, dan kerana banyak
sistem bina menyediakan panggilan rekursif ke semua arah, ini boleh menyebabkan tidak berkesudahan
rekursi. Makepp akan menarik brek selepas 50 pusingan dan memberitahu anda bagaimana untuk meningkatkan
itu, sekiranya anda benar-benar mempunyai sarang yang begitu dalam.

Walaupun dengan pilihan "--traditional-recursive-make", pembolehubah persekitaran
"MAKEOVERRIDES" dan "MFLAGS" tidak disediakan dan diabaikan, jadi fail yang bergantung pada
itu tidak akan berfungsi.

A Prabuatan dijana Makefile hanyalah pembalut lucu untuk sub-buat seruan dalam yang sama
direktori. Jika anda mempunyai beberapa sasaran projek XYZ ia akan mempunyai baris seperti

@${MAKE} --no-print-directory -C . -f XYZ.buat

Dalam kes ini, anda boleh mengelakkan pilihan "--traditional-recursive-make" dengan menggunakan terus
makepp dengan itu "-f XYZ.buat" pilihan.

Keserasian tanpa yang pilihan: "--pekerjaan=n"
Makefiles warisan kadangkala tidak akan menyenaraikan semua kebergantungan, bergantung pada susunan
pelaksanaan untuk membuat mereka dalam masa. Dalam keadaan ini makepp mungkin berjaya memanggil peraturan sebelum ini
kebergantungannya semuanya telah dibuat. Kemudian keputusan mungkin lebih baik dengan kurang, atau bahkan tidak
perlaksanaan selari.

Keserasian melalui yang pemboleh ubah: "makepp_simple_concatenation=1"
Penggantian gaya Rc ialah cara lalai makepp melakukan penggantian pembolehubah ke dalam teks
rentetan kerana ia sangat jarang memecahkan fail buatan lama dan selalunya berguna dalam fail baharu
makefiles. Walau bagaimanapun, ia memperkenalkan ketidakserasian sekali-sekala dalam penggantian
pembolehubah tidak dikelilingi oleh ruang. Sebagai contoh,

INCLUDE_PREFIX := -I/some/include/dir -I
TERMASUK := $(INCLUDE_PREFIX)/lain/include/dir

akan menetapkan "INCLUDES" kepada "-I/some/include/dir/other/include/dir -I/other/include/dir" jika rc-
penggantian gaya didayakan, manakala GNU make akan menetapkannya
"-I/some/include/dir -I/other/include/dir". Contohnya, apabila menyusun Redis 2.6.5 ia cuba melakukannya
jalankan "printfgcc". Gabungan dua arahan yang lucu adalah petunjuk yang kuat bahawa
pembolehubah ini diperlukan untuk mundur untuk membuat semantik.

Terdapat juga ketidakserasian dalam pengendalian ruang putih dalam pembolehubah:

null :=
T := -o $(null) # T mengandungi -o diikuti dengan satu ruang.
OUTFILE = $(T)outfile

akan menetapkan "OUTFILE" kepada "-ooutfile" jika penggantian gaya rc didayakan, manakala GNU membuat
akan menetapkannya kepada "-o outfile".

Kedua-dua ketidakserasian ini dialih keluar dengan menetapkan "makepp_simple_concatenation"
pembolehubah. Walau bagaimanapun, ambil perhatian bahawa walaupun dengan "makepp_simple_concatenation", makepp masih
merawat ruang kosong tidak serasi dalam beberapa situasi:

T := -o # Jangan padamkan ulasan ini.

GNU membuat set "T" untuk mengandungi "-o" diikuti dengan ruang, manakala makepp menghapuskan
ruang belakang pula. Jika anda mahukan ruang belakang, anda mesti menetapkan
"makepp_simple_concatenation" dan juga tetapkan "T" menggunakan teknik yang melibatkan dummy
pembolehubah seperti "null", seperti yang ditunjukkan di atas.

workaround pilihan "--no-remake-makefiles"
Sumber terbuka biasa memerlukan panggilan "konfigurasi" untuk mencipta fail make. Tetapi kemudian ini
makefiles boleh mengandungi peraturan untuk membuat semula makefile, dengan memanggil beberapa arahan. Makepp akan
dengan senang hati mematuhi dan mengemas kininya mengikut peraturan. Tetapi kadang-kadang ini berbahaya, jadi
langkau sahaja.

Keserasian melalui yang pemboleh ubah: "makepp_percent_subdirs=1"
Secara lalai, "%" dalam peraturan corak tidak sepadan dengan direktori. Ini bermakna bahawa peraturan seperti
ini:

%.o: %.c
$(CC) $(CFLAGS) -c $(input) -o $(output)

tidak akan digunakan pada fail seperti "../shared/xyz.c". Jika anda mahu ia sepadan dengan fail
subdirektori juga, kemudian tetapkan pembolehubah "makepp_percent_subdirs=1" pada baris arahan
atau berhampiran permulaan makefile.

Keserasian melalui yang persekitaran pemboleh ubah: $MAKEPP_IGNORE_OPTS
Kadangkala seruan rekursif warisan melepasi pilihan yang makepp tidak faham.
Mudah-mudahan pilihan itu tidak penting, tetapi ia menghalang makepp daripada berjalan. Dengan ini
pembolehubah persekitaran anda boleh meminta makepp mengabaikan pilihan tertentu secara senyap. Nilai
hendaklah menjadi senarai pilihan yang diasingkan ruang, yang boleh datang dalam 4 varian:

--lama=x
Pilihan panjang yang mengharapkan hujah. Fakta ini mesti diisytiharkan melalui persamaan
tanda, walaupun penggunaan sebenar mungkin juga dipisahkan oleh ruang putih, sama ada "--long=bla" atau
"--panjang bla".

--lama
Pilihan yang panjang tanpa hujah.

-sx Pilihan pendek yang mengharapkan hujah. Fakta ini mesti diisytiharkan dengan menambah
sesuatu secara langsung selepas pilihan, walaupun penggunaan sebenar mungkin juga dipisahkan oleh
ruang kosong, sama ada "-sbla" atau "-s bla".

-s Pilihan singkat tanpa hujah.

Cth mengatasi pilihan -R makepp dengan satu tanpa hujah dan terima nyahpepijat gmake
pilihan dengan hujah:

eksport MAKEPP_IGNORE_OPTS='-R --debug=x'

Ketidakpatuhan Bahawa memerlukan Makefile perubahan


· Makefiles yang secara eksplisit memanggil make menghalang makepp daripada membina semuanya sendiri.
"ExtUtils::MakeMaker" milik Alas Perl sendiri melakukan yang kedua daripada dua bentuk berikut
kesilapan ini sehingga versi 6.56 (Perl 5.12.1):

subdir:
cd subdir; buat

BUAT = buat

· Menetapkan pembolehubah "VPATH" kepada beberapa nilai secara tersirat memanggil "nilai % vpath". "vpath"
kenyataan dicontohi dengan mekanisme repositori. Jadi, di mana gmake menggantikan
laluan ke fail yang terdapat dalam vpath, makepp sebaliknya akan memautkannya secara simbolik
di mana ia diperlukan. Oleh itu makepp akan menyediakan rentetan yang tidak diubah suai, yang biasanya
tidak menjadi masalah.

Sasaran dalam vpath tidak disokong. (Gmake menganggap mereka jika mereka lebih baru daripada
kebergantungan mereka, tetapi jika tidak, sasaran akan dicipta semula dalam direktori semasa
-- agak tidak konsisten.) Menyahset vpaths tidak disokong.

· Peraturan corak yang hadir kemudian dalam fail make menggantikan peraturan yang terdapat lebih awal.
Ini adalah mundur dari GNU make.

· Set peraturan tersirat terbina dalam agak berbeza daripada yang dibuat oleh GNU,
walaupun nama pembolehubah sebahagian besarnya serasi. Peraturan terbina sepatutnya
berjaya menyusun program C/C++/Fortran, dan sebenarnya mungkin dapat meneka
perpustakaan yang betul dalam beberapa kes juga. Sokongan untuk Modula-2 dan RatFor dan lain-lain yang jarang berlaku
bahasa sengaja tidak hadir, kerana saya terus menghadapi masalah dengan GNU
membuat peraturan apabila saya secara tidak sengaja menggunakan semula sambungan untuk bahasa tersebut.

· Awalan tindakan "+" diabaikan secara senyap.

· Ahli arkib tidak disokong, dan begitu juga pembolehubah automatik yang berkaitan
$%, "$(%D)", dan "$(%F)".

· Tiada sokongan SCCS.

· Mendahului dan mengekori ruang putih dalam tugasan berubah-ubah diabaikan (walaupun jika
ruang putih diikuti dengan ulasan). Untuk butiran lanjut tentang pengendalian ruang putih
ketidakserasian, lihat "Ruang putih dalam pembolehubah" dalam makepp_variables.

· Makepp tidak cuba membina semula fail yang disertakan dengan pernyataan "termasuk" melainkan
makefile mengandungi peraturan untuk membinanya sebelum pernyataan include dilihat.
(Walau bagaimanapun, ia akan cuba membina semula fail makefile itu sendiri.) Ini biasanya digunakan untuk
pengendalian termasuk kebergantungan fail, dan tidak begitu berguna dengan makepp kerana anda tidak
perlu berbuat demikian juga.

· Pembolehubah "SHELL" pada masa ini sebahagiannya diabaikan. Makepp selalu guna / Bin / sh
melainkan jika /usr/xpg4/bin/sh or /sbin/xpg4/sh ditemui atau melainkan anda mengeksport "SHELL"
pembolehubah dalam fail make anda. Tetapi jika anda melakukannya, penghurai arahan mungkin tidak sepenuhnya
fahami apa yang dilakukan oleh arahan shell anda. Pada Windows Strawberry atau ActiveState Perl
sebaliknya anda mesti menetapkan pembolehubah SHELL anda sebelum memanggil makepp.

· Ketergantungan apa-apa pada Makefile masih berfungsi, tetapi biasanya tidak diperlukan.
Ini biasanya digunakan untuk memaksa bina semula apabila pilihan kompilasi berubah. Makepp tahu
apabila arahan binaan telah berubah tanpa apa-apa yang istimewa dalam makefile; ia menyimpan
ini berdasarkan fail demi fail. Jika anda menukar fail make, ia tahu yang mana
fail memerlukan penyusunan semula.

· Fail perantaraan tidak dipadamkan. (Kerana makepp berkeras untuk memiliki semua fail
tarikh adalah sama seperti pada binaan terakhir, fail perantaraan mesti semuanya
hadir atau pembinaan semula akan berlaku.) Tiada status istimewa yang diberikan
fail perantaraan.

· Satu-satunya sasaran khas yang disokong ialah ".PHONY" dan sebahagiannya ".SUFFIXES". The
selebihnya hanya dimasukkan.

Secara khusus, GNU make mempunyai sasaran khas berikut:

.AKHIRAN
Makepp mengabaikan ".SUFIXES" kecuali untuk kes khas ".SUFFIXES" dengan no
kebergantungan, seperti ini:

.AKHIR:

yang memberitahunya untuk tidak memuatkan mana-mana peraturan lalainya.

.PERTENGAHAN, .MENENGAH, .BERHARGA
Tiada status istimewa diberikan kepada fail perantaraan dan oleh itu sasaran ini tidak
bermakna.

.ABAI
Sasaran ini diabaikan. Jika anda ingin mengabaikan ralat, letakkan perkataan "ignore_error"
(atau tanda tolak) di hadapan arahan yang status keluarnya akan diabaikan.

.SENYAP
Sasaran ini diabaikan. Jika anda mahu arahan tidak bergema, letakkan perkataan "noecho"
(atau aksara "@") di hadapan arahan yang tidak sepatutnya digemakan,
atau gunakan pilihan "--senyap" untuk makepp.

.DELETE_ON_ERROR
.EXPORT_ALL_VARIABLES
.NOEXPORT
.POSIX
.LALAI
Sasaran ini tidak disokong dan hanya diabaikan.

· GNU membuat fungsi "eval", "flavor" dan "value" tidak disokong pada masa ini. awak
boleh mencapai perkara yang sama seperti eval dengan cara yang lebih lurus dengan "$[...]"
pengembangan pembolehubah atau fungsi.

· Peraturan kolon berganda tidak disokong sepenuhnya. (Mereka tidak boleh: dalam paradigma makepp,
tidak boleh ada lebih daripada satu cara untuk mengemas kini sasaran.) Pada masa ini, setiap berturut-turut
peraturan kolon berganda untuk sasaran tertentu hanya menambahkan rentetan arahan dan kebergantungannya
senarai ke rentetan arahan dan senarai pergantungan untuk sasaran ini. Sebagai contoh, jika anda
tulis ini:

a :: b
&kucing b -oa

# Kemudian dalam fail make anda:
a :: c
&kucing c -o >>a

ia adalah sebenarnya sama seperti anda telah menulis

a: bc
&kucing b -oa
&kucing c -o >>a

Ini sememangnya bukan tujuan peraturan kolon berganda, dan ia tidak selalunya
berfungsi, tetapi ia berfungsi untuk sasaran seperti "bersih" atau untuk semua perkara itu
ExtUtils::MakeMaker meletakkan ke dalam makefilesnya. Jangan bergantung kepada perkara lain
daripada makefiles warisan.

· Fungsi "$(wildcard )" bukan sahaja sepadan dengan fail yang wujud, tetapi juga fail yang wujud
belum wujud, tetapi yang mempunyai peraturan yang telah dilihat oleh makepp pada masa itu
Fungsi "$(wildcard )" dinilai.

· Pernyataan "define" disokong, tetapi pengendalian "@" sebelum itu telah dilakukan
berbeza. Pada masa ini dalam makepp, "@" di hadapan pembolehubah yang mempunyai berbilang baris
nilai hanya akan menyekat gema baris pertama. Sebagai contoh,

tentukan garis gema
&gema baris1 -o $@
&gema baris2 -o>>$@
endef

x:
@$(garisan gema)

tidak akan menyekat pencetakan "&echo line2" seperti yang dilakukan dalam GNU make; ia hanya akan
menyekat pencetakan "&gema baris1".

· Makepp tidak menyokong pembolehubah persekitaran berikut (ia tidak menetapkannya,
dan ia hanya mengabaikan mereka):

MAKEOVERRIDE
MFLAGS

Ketidakpatuhan in bagi of ungkapan pengembangan
· Dalam makepp, tindakan peraturan dikembangkan sebelum semua kebergantungan dijamin
telah dibina. Anda boleh mengatasinya dengan menukar peraturan seperti ini:

foo: bar
genfoo < $(shell cat bar)

kepada ini:

foo: bar
genfoo < `cat bar`

atau ini, yang akan membuat fail semasa pengembangan:

foo: bar
genfoo < $(&cat $(make bar))

Ini adalah lebih baik di sini, kerana fail yang disenaraikan dalam bar juga merupakan pergantungan ini
peraturan, dan makepp kini boleh menangkapnya apabila menganalisis pengalihan secara leksikal.

· Walaupun saya tidak melihat ini digunakan, GNU make membenarkan perkara berikut:

kolon = :
a$(kolon) b
gema $^

Makepp mengembang "$(colon)" terlalu lewat untuk ini berfungsi. Walau bagaimanapun ia menawarkan
sintaks "$[colon]" alternatif, yang boleh melakukan lebih daripada yang dibuat oleh GNU, kerana ia adalah
berkembang sangat awal.

"$(MAKE)" mungkin termasuk ruang
Dalam makepp yang dinyahpasang atau jika platform nampaknya tidak menyokong memulakan skrip Perl
dengan nombor ajaib atau dengan "--traditional-recursive-make" pembolehubah ini akan termasuk sekurang-kurangnya
satu ruang. Itu tidak menjadi masalah apabila menggunakannya sebagai arahan. Tetapi apabila lulus sebagai
parameter yang tidak disebut pada skrip (seperti yang dilakukan oleh sistem binaan Perl 5.14.0), ia akan mengoyakkannya
terpisah kepada parameter yang berasingan, yang membawa kepada kekeliruan. Jadi sebagai parameter adalah lebih selamat untuk
petik sebagai '$(MAKE)'. yang tidak memecahkan keserasian ke belakang.

Khusus sasaran tugasan tidak menyebarkan
Pembolehubah khusus sasaran Makepp berbeza sedikit daripada GNU make kerana ia
hanya terpakai kepada peraturan untuk satu fail yang disebutkan, dan bukan kepada mana-mana pendahulunya; lihat
Tugasan khusus sasaran.

Tanda kurung or pendakap tidak sarang
Makepp menamatkan ungkapan pada kurungan atau kurungan pertama yang sepadan. Daripada ini

$(somefunction ... ( ) ...) # GNU buat gaya

anda mesti menggunakan salah satu daripada ini

${somefunction ... ( ) ...} # GNU buat serasi
$((sesuatu fungsi ... ( ) ...)) # Sambungan Makepp

Ini mungkin akan diperbaiki dalam versi 2.1, mungkin secara pilihan.

Kecil mata
Kebergantungan corak tidak sepadan dengan sasaran palsu
%.a: %.b; ...
$(xb palsu): ; ... # tidak menyediakan cara untuk membina xa

Komen tidak mempunyai baris sambungan
# Ini adalah \
BUKAN ulasan 2 baris

Perintah selaras ketidaksesuaian


Makepp menyokong beberapa pilihan baris arahan make yang lebih berguna. Yang berikut, bagaimanapun,
tidak disokong:

-d atau --debug
-f -
Objek makefile dalaman Makepp dipautkan kepada objek fail, jadi ia tidak boleh mengendalikan
stdin.

-i
-l atau --load-purata atau --max-load
-m Pilihan "-m" Makepp mempunyai kaitan dengan pemilihan kaedah tandatangan, manakala GNU membuat
mengabaikan -m.

-p atau --print-data-base
-q atau --soalan
-R atau --tiada-pembolehubah-terbina
Pilihan "-R" Makepp sebenarnya melakukan sesuatu yang sama sekali berbeza.

-S --tidak-terus-pergi atau --berhenti
Pilihan "--stop" berhenti (membuat tidur) makepp selepas mempelajari semua peraturan, jadi anda
boleh terus edit.

-t atau --sentuh
-w atau --print-direktori
Ini berlaku secara automatik.

--warn-undefined-variables

Sebahagian daripada ini boleh disokong dengan mudah jika sesiapa mengambil berat.

Pembolehubah ketidaksesuaian


Makepp melihat dalam $PATH untuk arahan yang sepadan untuk kembali untuk pembolehubah seperti "$(CC)" atau
"$(CXX)", manakala GNU make mempunyai lalai statik. Juga makepp memberi keutamaan kepada "gcc" dan
"g++" sementara mengejutkan GNU membuat pulangan "cc" untuk yang pertama, tetapi sama untuk
yang terakhir. Anda boleh mengatasi ini dalam makefile, pada baris arahan atau dengan mengeksport a
pembolehubah dengan nama yang sama sebelum menggunakan makepp.

Gunakan makepp_incompatibilities dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

Arahan Linux

Ad