doc updates (xschem + open_pdks installation video)

This commit is contained in:
Stefan Frederik 2021-10-04 14:05:52 +02:00
parent 8452c6d417
commit 07845dec57
4 changed files with 48 additions and 8 deletions

View File

@ -53,6 +53,7 @@
<li><a href="tutorial_ngspice_backannotation.html">Backannotation of Ngspice simulation data into xschem</a></li>
<li><a href="tutorial_symgen.html">Use symgen.awk to create symbols from 'djboxsym' compatible text files</a></li>
<li><a href="https://xschem.sourceforge.io/stefan/xschem_man/video_tutorials/install_xschem_sky130_and_ngspice.mp4">[Video] Install Xschem, Xschem_sky130, skywater-pdk and ngspice: step by step instructions</a></li>
<li><a href="https://xschem.sourceforge.io/stefan/xschem_man/video_tutorials/install_xschem_and_open_pdks.mp4">[Video] Second version, Install Xschem and open_pdks for skywater 130 design</a></li>
<li><a href="https://xschem.sourceforge.io/stefan/xschem_man/video_tutorials/editing_and_sim.mp4">[Video] Editing commands and simulation</a></li>
<li><a href="https://xschem.sourceforge.io/stefan/xschem_man/video_tutorials/edit_attributes.mp4">[Video] Editing component attributes</a></li>
<li><a href="https://xschem.sourceforge.io/stefan/xschem_man/video_tutorials/copy_from_window_to_window.mp4">[Video] Copying objects across xschem windows</a></li>

View File

@ -50,6 +50,11 @@ void deps_default_init(void)
dep_add("cc/ldflags_dll", find_ldflags_dll);
dep_add("cc/ldflags_so", find_ldflags_so);
dep_add("cc/func_attr/unused/*", find_fattr_unused);
dep_add("cc/func_attr/noreturn/*", find_fattr_noreturn);
dep_add("cc/func_attr/deprecated/*", find_fattr_deprecated);
dep_add("cc/func_attr/weak/*", find_fattr_weak);
dep_add("cc/func_attr/visibility_hidden/*", find_fattr_visibility_hidden);
dep_add("cc/func_attr/visibility_default/*", find_fattr_visibility_default);
dep_add("cc/declspec/dllimport/*", find_declspec_dllimport);
dep_add("cc/declspec/dllexport/*", find_declspec_dllexport);
dep_add("cc/argmachine/*", find_cc_argmachine);

View File

@ -11,6 +11,11 @@ int find_funcmacro(const char *name, int logdepth, int fatal);
int find_constructor(const char *name, int logdepth, int fatal);
int find_destructor(const char *name, int logdepth, int fatal);
int find_fattr_unused(const char *name, int logdepth, int fatal);
int find_fattr_noreturn(const char *name, int logdepth, int fatal);
int find_fattr_deprecated(const char *name, int logdepth, int fatal);
int find_fattr_weak(const char *name, int logdepth, int fatal);
int find_fattr_visibility_hidden(const char *name, int logdepth, int fatal);
int find_fattr_visibility_default(const char *name, int logdepth, int fatal);
int find_declspec_dllimport(const char *name, int logdepth, int fatal);
int find_declspec_dllexport(const char *name, int logdepth, int fatal);
int find_rdynamic(const char *name, int logdepth, int fatal);

View File

@ -399,27 +399,29 @@ int find_destructor(const char *name, int logdepth, int fatal)
return 1;
}
static int test_fattr(const char *name, int logdepth, int fatal, const char *fattr)
static int test_fattr(const char *name, int logdepth, int fatal,
const char *key, const char *fattr, const char *f_spec, int call_testfunc)
{
char path[64];
char test_c[256];
char test_c[512];
const char *test_c_tmp =
NL "#include <stdio.h>"
NL "static void test1() __attribute__ ((%s));"
NL "static void test1()"
NL "%s void test1() __attribute__ ((%s));"
NL "%s void test1()"
NL "{"
NL " puts(\"OK\");"
NL "}"
NL "int main() {"
NL " puts(\"OK\");"
NL " %s;"
NL " return 0;"
NL "}"
NL ;
require("cc/cc", logdepth, fatal);
sprintf(test_c, test_c_tmp, fattr);
sprintf(path, "cc/func_attr/%s/presents", fattr);
sprintf(test_c, test_c_tmp, f_spec, fattr, f_spec,
(call_testfunc ? "test1()" : "puts(\"OK\")"));
sprintf(path, "cc/func_attr/%s/presents", key);
report("Checking for function attribute %s... ", fattr);
logprintf(logdepth, "test_fattr: trying to find %s...\n", fattr);
@ -436,7 +438,34 @@ static int test_fattr(const char *name, int logdepth, int fatal, const char *fat
int find_fattr_unused(const char *name, int logdepth, int fatal)
{
return test_fattr(name, logdepth, fatal, "unused");
return test_fattr(name, logdepth, fatal, "unused", "unused", "static", 0);
}
int find_fattr_noreturn(const char *name, int logdepth, int fatal)
{
return test_fattr(name, logdepth, fatal, "noreturn", "noreturn", "", 1);
}
int find_fattr_deprecated(const char *name, int logdepth, int fatal)
{
return test_fattr(name, logdepth, fatal, "deprecated", "depreated", "", 1);
}
int find_fattr_weak(const char *name, int logdepth, int fatal)
{
return test_fattr(name, logdepth, fatal, "weak", "weak", "", 1);
}
int find_fattr_visibility_hidden(const char *name, int logdepth, int fatal)
{
return test_fattr(name, logdepth, fatal, "visibility_hidden",
"visibility(\"hidden\")", "", 0);
}
int find_fattr_visibility_default(const char *name, int logdepth, int fatal)
{
return test_fattr(name, logdepth, fatal, "visibility_default",
"visibility(\"default\")", "", 1);
}
static int test_declspec(const char *name, int logdepth, int fatal, const char *dspec)