Generally,
obj-y += foo.o
This tells kbuild that there is one object in that directory, named foo.o. foo.o will be built from foo.c or foo.S.
If foo.o shall be built as a module, the variable obj-m is used.
obj-$(CONFIG_FOO) += foo.o
$(CONFIG_FOO) evaluates to either y (for built-in) or m (for module). If CONFIG_FOO is neither y nor m, then the file will not be compiled nor linked.
The #1 in your case, ifdef i.e. if the compilation flag (in your case CONFIG_MY_SYSTEM_CALL) is defined then only the module is included into the image.
I hope this helps you.
Regards,
Srinivas G.